From 92e5ef29fdd31adfa0d667c1b4cbb390cf4161e3 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sat, 28 Dec 2024 09:10:13 +0100 Subject: [PATCH 01/11] core --- Core uniswap/.gitignore | 17 + Core uniswap/Frontend/.eslintrc.json | 3 + Core uniswap/Frontend/.gitignore | 40 + Core uniswap/Frontend/README.md | 36 + Core uniswap/Frontend/app/client.ts | 6 + .../Frontend/app/components/ApproveButton.tsx | 100 + Core uniswap/Frontend/app/components/Card.tsx | 54 + .../Frontend/app/components/ConnectButton.tsx | 30 + .../Frontend/app/components/Header.tsx | 15 + .../components/Investments/InvestmentTab.tsx | 0 .../Liquidity/AddLiquidityButton.tsx | 128 + .../app/components/Liquidity/LiquidityTab.tsx | 89 + .../app/components/Mint/MintButton.tsx | 97 + .../Frontend/app/components/Mint/MintTab.tsx | 75 + .../app/components/Swap/SwapButton.tsx | 97 + .../Frontend/app/components/Swap/SwapTab.tsx | 87 + .../Frontend/app/components/footer.tsx | 26 + Core uniswap/Frontend/app/favicon.ico | Bin 0 -> 25931 bytes .../Frontend/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes Core uniswap/Frontend/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes Core uniswap/Frontend/app/globals.css | 72 + Core uniswap/Frontend/app/layout.tsx | 41 + Core uniswap/Frontend/app/page.tsx | 178 + Core uniswap/Frontend/components.json | 21 + .../components/enhanced-transaction-alert.tsx | 68 + .../components/refined-dex-interface.tsx | 252 + Core uniswap/Frontend/components/ui/alert.tsx | 59 + .../Frontend/components/ui/button.tsx | 57 + Core uniswap/Frontend/components/ui/card.tsx | 76 + Core uniswap/Frontend/components/ui/input.tsx | 22 + Core uniswap/Frontend/components/ui/label.tsx | 26 + .../Frontend/components/ui/progress.tsx | 28 + .../Frontend/components/ui/select.tsx | 159 + Core uniswap/Frontend/components/ui/tabs.tsx | 55 + Core uniswap/Frontend/lib/utils.ts | 6 + Core uniswap/Frontend/next.config.ts | 7 + Core uniswap/Frontend/package-lock.json | 11357 +++ Core uniswap/Frontend/package.json | 38 + Core uniswap/Frontend/postcss.config.mjs | 8 + Core uniswap/Frontend/public/file.svg | 1 + Core uniswap/Frontend/public/globe.svg | 1 + Core uniswap/Frontend/public/next.svg | 1 + Core uniswap/Frontend/public/vercel.svg | 1 + Core uniswap/Frontend/public/window.svg | 1 + Core uniswap/Frontend/tailwind.config.ts | 63 + Core uniswap/Frontend/tsconfig.json | 27 + Core uniswap/README.md | 13 + Core uniswap/contracts/core/Factory.sol | 85 + .../contracts/core/LiquidityProvider.sol | 179 + Core uniswap/contracts/core/Math.sol | 24 + Core uniswap/contracts/core/Pool.sol | 130 + .../contracts/core/interfaces/IFactory.sol | 14 + .../contracts/core/interfaces/IPool.sol | 22 + .../contracts/core/interfaces/IWedu.sol | 10 + .../contracts/core/libraries/Library.sol | 38 + .../core/wrapped-native-token/Apple.Token.sol | 14 + .../core/wrapped-native-token/CherryToken.sol | 14 + .../core/wrapped-native-token/WCore.sol | 18 + Core uniswap/hardhat.config.js | 69 + .../CherryTokenModule#CherryToken.dbg.json | 4 + .../CherryTokenModule#CherryToken.json | 342 + ...rappedEduTokenMod#WrappedEduToken.dbg.json | 4 + .../WrappedEduTokenMod#WrappedEduToken.json | 342 + .../6919de14a125c32fee1b7b138baa53da.json | 79796 +++++++++++++++ .../deployments/chain-1114/journal.jsonl | 6 + .../CherryTokenModule#CherryToken.dbg.json | 4 + .../CherryTokenModule#CherryToken.json | 342 + .../6919de14a125c32fee1b7b138baa53da.json | 79796 +++++++++++++++ .../deployments/chain-1115/journal.jsonl | 4 + .../AppleTokenModule#AppleToken.dbg.json | 4 + .../AppleTokenModule#AppleToken.json | 342 + .../CherryTokenModule#CherryToken.dbg.json | 4 + .../CherryTokenModule#CherryToken.json | 342 + ...yProviderModule#LiquidityProvider.dbg.json | 4 + ...idityProviderModule#LiquidityProvider.json | 159 + .../PoolFactoryModule#PoolFactory.dbg.json | 4 + .../PoolFactoryModule#PoolFactory.json | 154 + ...rappedEduTokenMod#WrappedEduToken.dbg.json | 4 + .../WrappedEduTokenMod#WrappedEduToken.json | 342 + ...pedEduTokenModule#WrappedEduToken.dbg.json | 4 + ...WrappedEduTokenModule#WrappedEduToken.json | 337 + .../455be90ea7dff1b385f62d8e4fced657.json | 27078 ++++++ .../6919de14a125c32fee1b7b138baa53da.json | 79796 +++++++++++++++ .../7153d89ef561a9ce69894956d250c390.json | 79953 +++++++++++++++ .../b58a32b7e115e25f756aa700ce5572e8.json | 22197 +++++ .../e7e96229427b7faa67d9ec35320a6b93.json | 80267 ++++++++++++++++ .../chain-11155111/deployed_addresses.json | 8 + .../deployments/chain-11155111/journal.jsonl | 32 + .../ignition/modules/01-deploy-poolfactory.js | 19 + .../modules/02-deploy-liquidityprovider.js | 19 + .../ignition/modules/03-deploy-tokens.js | 41 + Core uniswap/package-lock.json | 7824 ++ Core uniswap/package.json | 24 + Core uniswap/scripts/deployTokens.js | 37 + Core uniswap/scripts/deploy_factory.js | 25 + Core uniswap/scripts/deploy_liquidity.js | 24 + Core uniswap/test/swap-test.js | 157 + 97 files changed, 473996 insertions(+) create mode 100644 Core uniswap/.gitignore create mode 100644 Core uniswap/Frontend/.eslintrc.json create mode 100644 Core uniswap/Frontend/.gitignore create mode 100644 Core uniswap/Frontend/README.md create mode 100644 Core uniswap/Frontend/app/client.ts create mode 100644 Core uniswap/Frontend/app/components/ApproveButton.tsx create mode 100644 Core uniswap/Frontend/app/components/Card.tsx create mode 100644 Core uniswap/Frontend/app/components/ConnectButton.tsx create mode 100644 Core uniswap/Frontend/app/components/Header.tsx create mode 100644 Core uniswap/Frontend/app/components/Investments/InvestmentTab.tsx create mode 100644 Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx create mode 100644 Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx create mode 100644 Core uniswap/Frontend/app/components/Mint/MintButton.tsx create mode 100644 Core uniswap/Frontend/app/components/Mint/MintTab.tsx create mode 100644 Core uniswap/Frontend/app/components/Swap/SwapButton.tsx create mode 100644 Core uniswap/Frontend/app/components/Swap/SwapTab.tsx create mode 100644 Core uniswap/Frontend/app/components/footer.tsx create mode 100644 Core uniswap/Frontend/app/favicon.ico create mode 100644 Core uniswap/Frontend/app/fonts/GeistMonoVF.woff create mode 100644 Core uniswap/Frontend/app/fonts/GeistVF.woff create mode 100644 Core uniswap/Frontend/app/globals.css create mode 100644 Core uniswap/Frontend/app/layout.tsx create mode 100644 Core uniswap/Frontend/app/page.tsx create mode 100644 Core uniswap/Frontend/components.json create mode 100644 Core uniswap/Frontend/components/enhanced-transaction-alert.tsx create mode 100644 Core uniswap/Frontend/components/refined-dex-interface.tsx create mode 100644 Core uniswap/Frontend/components/ui/alert.tsx create mode 100644 Core uniswap/Frontend/components/ui/button.tsx create mode 100644 Core uniswap/Frontend/components/ui/card.tsx create mode 100644 Core uniswap/Frontend/components/ui/input.tsx create mode 100644 Core uniswap/Frontend/components/ui/label.tsx create mode 100644 Core uniswap/Frontend/components/ui/progress.tsx create mode 100644 Core uniswap/Frontend/components/ui/select.tsx create mode 100644 Core uniswap/Frontend/components/ui/tabs.tsx create mode 100644 Core uniswap/Frontend/lib/utils.ts create mode 100644 Core uniswap/Frontend/next.config.ts create mode 100644 Core uniswap/Frontend/package-lock.json create mode 100644 Core uniswap/Frontend/package.json create mode 100644 Core uniswap/Frontend/postcss.config.mjs create mode 100644 Core uniswap/Frontend/public/file.svg create mode 100644 Core uniswap/Frontend/public/globe.svg create mode 100644 Core uniswap/Frontend/public/next.svg create mode 100644 Core uniswap/Frontend/public/vercel.svg create mode 100644 Core uniswap/Frontend/public/window.svg create mode 100644 Core uniswap/Frontend/tailwind.config.ts create mode 100644 Core uniswap/Frontend/tsconfig.json create mode 100644 Core uniswap/README.md create mode 100644 Core uniswap/contracts/core/Factory.sol create mode 100644 Core uniswap/contracts/core/LiquidityProvider.sol create mode 100644 Core uniswap/contracts/core/Math.sol create mode 100644 Core uniswap/contracts/core/Pool.sol create mode 100644 Core uniswap/contracts/core/interfaces/IFactory.sol create mode 100644 Core uniswap/contracts/core/interfaces/IPool.sol create mode 100644 Core uniswap/contracts/core/interfaces/IWedu.sol create mode 100644 Core uniswap/contracts/core/libraries/Library.sol create mode 100644 Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol create mode 100644 Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol create mode 100644 Core uniswap/contracts/core/wrapped-native-token/WCore.sol create mode 100644 Core uniswap/hardhat.config.js create mode 100644 Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json create mode 100644 Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json create mode 100644 Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json create mode 100644 Core uniswap/ignition/deployments/chain-1114/journal.jsonl create mode 100644 Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json create mode 100644 Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json create mode 100644 Core uniswap/ignition/deployments/chain-1115/journal.jsonl create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/build-info/6919de14a125c32fee1b7b138baa53da.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/build-info/7153d89ef561a9ce69894956d250c390.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/build-info/b58a32b7e115e25f756aa700ce5572e8.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/build-info/e7e96229427b7faa67d9ec35320a6b93.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/deployed_addresses.json create mode 100644 Core uniswap/ignition/deployments/chain-11155111/journal.jsonl create mode 100644 Core uniswap/ignition/modules/01-deploy-poolfactory.js create mode 100644 Core uniswap/ignition/modules/02-deploy-liquidityprovider.js create mode 100644 Core uniswap/ignition/modules/03-deploy-tokens.js create mode 100644 Core uniswap/package-lock.json create mode 100644 Core uniswap/package.json create mode 100644 Core uniswap/scripts/deployTokens.js create mode 100644 Core uniswap/scripts/deploy_factory.js create mode 100644 Core uniswap/scripts/deploy_liquidity.js create mode 100644 Core uniswap/test/swap-test.js diff --git a/Core uniswap/.gitignore b/Core uniswap/.gitignore new file mode 100644 index 00000000..e8c12ff4 --- /dev/null +++ b/Core uniswap/.gitignore @@ -0,0 +1,17 @@ +node_modules +.env + +# Hardhat files +/cache +/artifacts + +# TypeChain files +/typechain +/typechain-types + +# solidity-coverage files +/coverage +/coverage.json + +# Hardhat Ignition default folder for deployments against a local node +ignition/deployments/chain-31337 diff --git a/Core uniswap/Frontend/.eslintrc.json b/Core uniswap/Frontend/.eslintrc.json new file mode 100644 index 00000000..37224185 --- /dev/null +++ b/Core uniswap/Frontend/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/Core uniswap/Frontend/.gitignore b/Core uniswap/Frontend/.gitignore new file mode 100644 index 00000000..26b002aa --- /dev/null +++ b/Core uniswap/Frontend/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# env files (can opt-in for commiting if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/Core uniswap/Frontend/README.md b/Core uniswap/Frontend/README.md new file mode 100644 index 00000000..e215bc4c --- /dev/null +++ b/Core uniswap/Frontend/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/Core uniswap/Frontend/app/client.ts b/Core uniswap/Frontend/app/client.ts new file mode 100644 index 00000000..2d44cecd --- /dev/null +++ b/Core uniswap/Frontend/app/client.ts @@ -0,0 +1,6 @@ +// src/client.ts +import { createThirdwebClient } from "thirdweb"; + +export const client = createThirdwebClient({ + clientId: process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID as string, +}); diff --git a/Core uniswap/Frontend/app/components/ApproveButton.tsx b/Core uniswap/Frontend/app/components/ApproveButton.tsx new file mode 100644 index 00000000..e41277bf --- /dev/null +++ b/Core uniswap/Frontend/app/components/ApproveButton.tsx @@ -0,0 +1,100 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; +import { client } from "../client"; +import { useSendTransaction } from "thirdweb/react"; +import { toast } from 'react-hot-toast'; + + +const ApproveButton = ({ + addressOne, + setAddressOne, + amountOne, + setAmountOne, +}: {addressOne: string, setAddressOne: (address: string) => void, amountOne: string, setAmountOne: (amount: string) => void}) => { + + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: addressOne, + chain: chain, + }); + + const { mutate: sendTransaction } = useSendTransaction(); + + const Approve = async (address: string, amount: bigint) => { + const approve = prepareContractCall({ + contract, + method: "function approve(address to, uint256 amount)", + params: [address, amount], + }); + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + + return ( + <> + + + ); +}; + +export default ApproveButton; diff --git a/Core uniswap/Frontend/app/components/Card.tsx b/Core uniswap/Frontend/app/components/Card.tsx new file mode 100644 index 00000000..72fd37aa --- /dev/null +++ b/Core uniswap/Frontend/app/components/Card.tsx @@ -0,0 +1,54 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent} from "@/components/ui/card"; +import { RefreshCcw, Coins, BarChart3 } from "lucide-react"; + + +const Cardd = ({activeTab, setActiveTab}: {activeTab: string, setActiveTab: (tab: string) => void}) => { + + + return ( + <> + + + + + + + ); +}; + +export default Cardd; diff --git a/Core uniswap/Frontend/app/components/ConnectButton.tsx b/Core uniswap/Frontend/app/components/ConnectButton.tsx new file mode 100644 index 00000000..63dc0858 --- /dev/null +++ b/Core uniswap/Frontend/app/components/ConnectButton.tsx @@ -0,0 +1,30 @@ +"use client"; + +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { ConnectButton, lightTheme } from "thirdweb/react"; +import { client } from "../client"; + +const ConnectButtons = () => { + return ( + <> + + + + ); +}; + +export default ConnectButtons; diff --git a/Core uniswap/Frontend/app/components/Header.tsx b/Core uniswap/Frontend/app/components/Header.tsx new file mode 100644 index 00000000..b1c16b76 --- /dev/null +++ b/Core uniswap/Frontend/app/components/Header.tsx @@ -0,0 +1,15 @@ +"use client"; +import ConnectButton from "./ConnectButton"; + +const Header = () => { + return ( + <> +
+

DEX Platform

+ +
+ + ); +}; + +export default Header; diff --git a/Core uniswap/Frontend/app/components/Investments/InvestmentTab.tsx b/Core uniswap/Frontend/app/components/Investments/InvestmentTab.tsx new file mode 100644 index 00000000..e69de29b diff --git a/Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx b/Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx new file mode 100644 index 00000000..5ae28041 --- /dev/null +++ b/Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx @@ -0,0 +1,128 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; +import { client } from "../../client"; +import { useSendTransaction } from "thirdweb/react"; +import { toast } from 'react-hot-toast'; + + +const AddLiquidityButton = ({ + addressOne, + addressTwo, + amountOne, + amountTwo, + setAmountOne, + setAmountTwo, +}: { + addressOne: string; + addressTwo: string; + amountOne: string; + amountTwo: string; + setAddressOne: (address: string) => void; + setAddressTwo: (address: string) => void; + setAmountOne: (amount: string) => void; + setAmountTwo: (amount: string) => void; +}) => { + const routerAddress = "0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382"; + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: routerAddress, + chain: chain, + }); + + const { mutate: sendTransaction } = useSendTransaction(); + + const AddLiquidity = async ( + addressOne: string, + addressTwo: string, + amountOne: bigint, + amountTwo: bigint, + minTokenA: bigint, + minTokenB: bigint + ) => { + const addLiquidity = prepareContractCall({ + contract, + method: + "function addLiquidity(address tokenA, address tokenB, uint256 amountOfTokenADesired, uint256 amountOfTokenBDesired, uint256 minTokenA, uint256 minTokenB)", + params: [addressOne, addressTwo, amountOne, amountTwo, minTokenA, minTokenB], + }); + return new Promise((resolve, reject) => { + sendTransaction(addLiquidity, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + + return ( + <> + + + ); +}; + +export default AddLiquidityButton; diff --git a/Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx b/Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx new file mode 100644 index 00000000..e63e04ed --- /dev/null +++ b/Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx @@ -0,0 +1,89 @@ +"use client"; + +import { + Card, + CardContent, + CardHeader, + CardTitle, + CardDescription, +} from "@/components/ui/card"; +import { Label } from "@/components/ui/label"; +import { Input } from "@/components/ui/input"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import SwapButton from "../Swap/SwapButton"; +import ApproveButton from "../ApproveButton"; +import AddLiquidityButton from "./AddLiquidityButton"; + +const SwapTab = ({amountOne, amountTwo, setAmountOne, setAmountTwo, addressOne, addressTwo, setAddressOne, setAddressTwo}: {amountOne: string, amountTwo: string, setAmountOne: (amount: string) => void, setAmountTwo: (amount: string) => void, addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void}) => { + return ( + <> + + + Provide Liquidity + + Add liquidity to earn fees from trades + + + +
+
+ +
+ setAmountOne(e.target.value)} + /> + +
+
+
+ +
+ setAmountTwo(e.target.value)} + /> + +
+
+ + + {/* */} +
+
+
+ + ); +}; + +export default SwapTab; diff --git a/Core uniswap/Frontend/app/components/Mint/MintButton.tsx b/Core uniswap/Frontend/app/components/Mint/MintButton.tsx new file mode 100644 index 00000000..01323c61 --- /dev/null +++ b/Core uniswap/Frontend/app/components/Mint/MintButton.tsx @@ -0,0 +1,97 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { getContract, prepareContractCall, defineChain } from "thirdweb"; +import { sepolia } from "thirdweb/chains"; +import { client } from "../../client"; +import { useSendTransaction } from "thirdweb/react"; +import { toast } from 'react-hot-toast'; + + + +const MintButton = ({ + addressOne, + addressTwo, + setAddressOne, + amountOne, + setAmountOne, +}: {addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, amountOne: string, setAmountOne: (amount: string) => void}) => { + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: addressTwo, + chain: chain, + }); + + const { mutate: sendTransaction } = useSendTransaction(); + + const Mint = async (address: string, amount: bigint) => { + const approve = prepareContractCall({ + contract, + method: "function mint(address to, uint256 amount)", + params: [address, amount], // type safe params + }); + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + return ( + <> + + + ); +}; + +export default MintButton; diff --git a/Core uniswap/Frontend/app/components/Mint/MintTab.tsx b/Core uniswap/Frontend/app/components/Mint/MintTab.tsx new file mode 100644 index 00000000..b6320711 --- /dev/null +++ b/Core uniswap/Frontend/app/components/Mint/MintTab.tsx @@ -0,0 +1,75 @@ +"use client"; + +import { + Card, + CardContent, + CardHeader, + CardTitle, + CardDescription, +} from "@/components/ui/card"; +import { Label } from "@/components/ui/label"; +import { Input } from "@/components/ui/input"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import MintButton from "./MintButton"; + +const SwapTab = ({amountOne, setAmountOne, addressOne, addressTwo, setAddressOne, setAddressTwo}: {amountOne: string, setAmountOne: (amount: string) => void, addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void}) => { + return ( + <> + + + Minting... + + Provides Minting of Tokens + + + +
+
+ +
+ setAddressOne(e.target.value)} + /> + +
+
+
+ +
+ setAmountOne(e.target.value)} + /> +
+
+ +
+
+
+ + ); +}; + +export default SwapTab; diff --git a/Core uniswap/Frontend/app/components/Swap/SwapButton.tsx b/Core uniswap/Frontend/app/components/Swap/SwapButton.tsx new file mode 100644 index 00000000..0b6b0ba0 --- /dev/null +++ b/Core uniswap/Frontend/app/components/Swap/SwapButton.tsx @@ -0,0 +1,97 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { toast } from 'react-hot-toast'; +import { useSendTransaction } from "thirdweb/react"; +import { client } from "../../client"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; +import { sepolia } from "thirdweb/chains"; + +const SwapButton = ({addressOne, addressTwo, amountOne, amountTwo, setAmountOne, setAmountTwo}: {addressOne: string, addressTwo: string, amountOne: string, amountTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void, setAmountOne: (amount: string) => void, setAmountTwo: (amount: string) => void}) => { + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: "0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382", + chain: chain, + }); + + const { mutate: sendTransaction } = useSendTransaction(); + + const SwapTokens = async (amountIn: bigint, amountOut: bigint, path: string[]) => { + const swap = prepareContractCall({ + contract, + method: "function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] memory path)", + params: [amountIn, amountOut, path], + }); + return new Promise((resolve, reject) => { + sendTransaction(swap, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + + + return ( + <> + + + ); +}; + +export default SwapButton; diff --git a/Core uniswap/Frontend/app/components/Swap/SwapTab.tsx b/Core uniswap/Frontend/app/components/Swap/SwapTab.tsx new file mode 100644 index 00000000..dcf24a68 --- /dev/null +++ b/Core uniswap/Frontend/app/components/Swap/SwapTab.tsx @@ -0,0 +1,87 @@ +"use client"; + +import { + Card, + CardContent, + CardHeader, + CardTitle, + CardDescription, +} from "@/components/ui/card"; +import { Label } from "@/components/ui/label"; +import { Input } from "@/components/ui/input"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import SwapButton from "./SwapButton"; +import ApproveButton from "../ApproveButton"; + +const SwapTab = ({amountOne, amountTwo, setAmountOne, setAmountTwo, addressOne, addressTwo, setAddressOne, setAddressTwo}: {amountOne: string, amountTwo: string, setAmountOne: (amount: string) => void, setAmountTwo: (amount: string) => void, addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void}) => { + return ( + <> + + + Swap Tokens + + Exchange one token for another at the best rates + + + +
+
+ +
+ setAmountOne(e.target.value)} + /> + +
+
+
+ +
+ setAmountTwo(e.target.value)} + /> + +
+
+ + +
+
+
+ + ); +}; + +export default SwapTab; diff --git a/Core uniswap/Frontend/app/components/footer.tsx b/Core uniswap/Frontend/app/components/footer.tsx new file mode 100644 index 00000000..9f4113f5 --- /dev/null +++ b/Core uniswap/Frontend/app/components/footer.tsx @@ -0,0 +1,26 @@ + + + "use client"; + import { Button } from "@/components/ui/button"; +import { Settings } from "lucide-react"; + + +const Footer = () => { + return ( + <> +
+
+

+ © 2023 DEX Platform. All rights reserved. +

+ +
+
+ + ); +}; + +export default Footer; diff --git a/Core uniswap/Frontend/app/favicon.ico b/Core uniswap/Frontend/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/Core uniswap/Frontend/app/fonts/GeistMonoVF.woff b/Core uniswap/Frontend/app/fonts/GeistMonoVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..f2ae185cbfd16946a534d819e9eb03924abbcc49 GIT binary patch literal 67864 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ϣ%UY8`RWp~V-U_7 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 CLkb=M literal 0 HcmV?d00001 diff --git a/Core uniswap/Frontend/app/fonts/GeistVF.woff b/Core uniswap/Frontend/app/fonts/GeistVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..1b62daacff96dad6584e71cd962051b82957c313 GIT binary patch literal 66268 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 >-Aun5A4Gp>4U0IQJ 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 G)cz05(PHWV literal 0 HcmV?d00001 diff --git a/Core uniswap/Frontend/app/globals.css b/Core uniswap/Frontend/app/globals.css new file mode 100644 index 00000000..942f8719 --- /dev/null +++ b/Core uniswap/Frontend/app/globals.css @@ -0,0 +1,72 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + font-family: Arial, Helvetica, sans-serif; +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/Core uniswap/Frontend/app/layout.tsx b/Core uniswap/Frontend/app/layout.tsx new file mode 100644 index 00000000..383ed274 --- /dev/null +++ b/Core uniswap/Frontend/app/layout.tsx @@ -0,0 +1,41 @@ +import type { Metadata } from "next"; +import localFont from "next/font/local"; +import "./globals.css"; +import { ThirdwebProvider } from "thirdweb/react"; +import { Toaster } from 'react-hot-toast'; + + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + + {children} + + + + + ); +} diff --git a/Core uniswap/Frontend/app/page.tsx b/Core uniswap/Frontend/app/page.tsx new file mode 100644 index 00000000..0737ef0a --- /dev/null +++ b/Core uniswap/Frontend/app/page.tsx @@ -0,0 +1,178 @@ +"use client"; + +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { + BarChart3, + CandlestickChart, + Coins, + LayoutDashboard, + RefreshCcw, + Wallet, +} from "lucide-react"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { lightTheme, useSendTransaction } from "thirdweb/react"; +import { client } from "./client"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; +import Header from "./components/Header"; +import Footer from "./components/footer"; +import Cardd from "./components/Card"; +import SwapTab from "./components/Swap/SwapTab"; +import LiquidityTab from "./components/Liquidity/LiquidityTab"; +import MintTab from "./components/Mint/MintTab"; + +export default function RefinedDEXInterface() { + const [activeTab, setActiveTab] = useState("swap"); + + const [amountOne, setAmountOne] = useState(""); + const [amountTwo, setAmountTwo] = useState(""); + const [addressOne, setAddressOne] = useState(""); + const [addressTwo, setAddressTwo] = useState(""); + + return ( +
+
+
+
+ {/* Sidebar */} + + + {/* Main Content */} +
+ + + + + + + + +
+
+ + + + Portfolio Value + + + + +
$10,234.56
+

+ +2.5% from last month +

+
+
+ + + + 24h Change + + + + +
+ +5.67% +
+

+ +$580.23 +

+
+
+
+ + + Your Positions + + Overview of your liquidity positions + + + +
+
+
+ E/U +
+
+

ETH-USDC

+

+ $5,000 +

+
+
+

32.5 ETH

+

+ 2,500 USDC +

+
+
+
+
+ D/U +
+
+

DAI-USDC

+

+ $3,000 +

+
+
+

1,500 DAI

+

+ 1,500 USDC +

+
+
+
+
+ E/D +
+
+

ETH-DAI

+

+ $2,234.56 +

+
+
+

7.2 ETH

+

+ 1,117.28 DAI +

+
+
+
+
+
+
+
+ + + +
+
+
+
+ + {/* Footer */} +
+
+ ); +} diff --git a/Core uniswap/Frontend/components.json b/Core uniswap/Frontend/components.json new file mode 100644 index 00000000..a3128650 --- /dev/null +++ b/Core uniswap/Frontend/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "app/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/Core uniswap/Frontend/components/enhanced-transaction-alert.tsx b/Core uniswap/Frontend/components/enhanced-transaction-alert.tsx new file mode 100644 index 00000000..232b866d --- /dev/null +++ b/Core uniswap/Frontend/components/enhanced-transaction-alert.tsx @@ -0,0 +1,68 @@ +'use client' + +import { useState, useEffect } from 'react' +import { CheckCircle2, X } from 'lucide-react' +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert" +import { Button } from "@/components/ui/button" +import { Progress } from "@/components/ui/progress" + +interface TransactionAlertProps { + message: string + onClose: () => void +} + +export function EnhancedTransactionAlertComponent({ message, onClose }: TransactionAlertProps = { message: 'Transaction successful!', onClose: () => {} }) { + const [isVisible, setIsVisible] = useState(true) + const [progress, setProgress] = useState(0) + + useEffect(() => { + const duration = 5000 // 5 seconds + const interval = 50 // Update every 50ms + + const timer = setInterval(() => { + setProgress((oldProgress) => { + const newProgress = oldProgress + (100 / (duration / interval)) + return newProgress >= 100 ? 100 : newProgress + }) + }, interval) + + const hideTimer = setTimeout(() => { + setIsVisible(false) + onClose() + }, duration) + + return () => { + clearInterval(timer) + clearTimeout(hideTimer) + } + }, [onClose]) + + if (!isVisible) return null + + return ( + +
+ +
+ Success + + {message} + +
+ +
+ +
+ ) +} \ No newline at end of file diff --git a/Core uniswap/Frontend/components/refined-dex-interface.tsx b/Core uniswap/Frontend/components/refined-dex-interface.tsx new file mode 100644 index 00000000..357df390 --- /dev/null +++ b/Core uniswap/Frontend/components/refined-dex-interface.tsx @@ -0,0 +1,252 @@ +'use client' + +import { useState } from 'react' +import { Button } from "@/components/ui/button" +import { Input } from "@/components/ui/input" +import { Label } from "@/components/ui/label" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" +import { BarChart3, CandlestickChart, Coins, LayoutDashboard, RefreshCcw, Settings, Wallet } from "lucide-react" +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select" + +export function RefinedDexInterface() { + const [activeTab, setActiveTab] = useState('swap') + + return ( +
+
+
+

DEX Platform

+ +
+ +
+ {/* Sidebar */} + + + {/* Main Content */} +
+ + + + + Swap Tokens + Exchange one token for another at the best rates + + +
+
+ +
+ + +
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + Provide Liquidity + Add liquidity to earn fees from trades + + +
+
+ +
+ + +
+
+
+ +
+ + +
+
+ +
+
+
+
+ +
+
+ + + Portfolio Value + + + +
$10,234.56
+

+2.5% from last month

+
+
+ + + 24h Change + + + +
+5.67%
+

+$580.23

+
+
+
+ + + Your Positions + Overview of your liquidity positions + + +
+
+
+ E/U +
+
+

ETH-USDC

+

$5,000

+
+
+

32.5 ETH

+

2,500 USDC

+
+
+
+
+ D/U +
+
+

DAI-USDC

+

$3,000

+
+
+

1,500 DAI

+

1,500 USDC

+
+
+
+
+ E/D +
+
+

ETH-DAI

+

$2,234.56

+
+
+

7.2 ETH

+

1,117.28 DAI

+
+
+
+
+
+
+
+
+
+
+
+ + {/* Footer */} +
+
+

© 2023 DEX Platform. All rights reserved.

+ +
+
+
+ ) +} \ No newline at end of file diff --git a/Core uniswap/Frontend/components/ui/alert.tsx b/Core uniswap/Frontend/components/ui/alert.tsx new file mode 100644 index 00000000..5afd41d1 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/alert.tsx @@ -0,0 +1,59 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const alertVariants = cva( + "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: + "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)) +Alert.displayName = "Alert" + +const AlertTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertTitle.displayName = "AlertTitle" + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertDescription.displayName = "AlertDescription" + +export { Alert, AlertTitle, AlertDescription } diff --git a/Core uniswap/Frontend/components/ui/button.tsx b/Core uniswap/Frontend/components/ui/button.tsx new file mode 100644 index 00000000..65d4fcd9 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/Core uniswap/Frontend/components/ui/card.tsx b/Core uniswap/Frontend/components/ui/card.tsx new file mode 100644 index 00000000..cabfbfc5 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/card.tsx @@ -0,0 +1,76 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/Core uniswap/Frontend/components/ui/input.tsx b/Core uniswap/Frontend/components/ui/input.tsx new file mode 100644 index 00000000..69b64fb2 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/Core uniswap/Frontend/components/ui/label.tsx b/Core uniswap/Frontend/components/ui/label.tsx new file mode 100644 index 00000000..53418217 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/label.tsx @@ -0,0 +1,26 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/Core uniswap/Frontend/components/ui/progress.tsx b/Core uniswap/Frontend/components/ui/progress.tsx new file mode 100644 index 00000000..4fc3b473 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/progress.tsx @@ -0,0 +1,28 @@ +"use client" + +import * as React from "react" +import * as ProgressPrimitive from "@radix-ui/react-progress" + +import { cn } from "@/lib/utils" + +const Progress = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, value, ...props }, ref) => ( + + + +)) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } diff --git a/Core uniswap/Frontend/components/ui/select.tsx b/Core uniswap/Frontend/components/ui/select.tsx new file mode 100644 index 00000000..0cbf77d1 --- /dev/null +++ b/Core uniswap/Frontend/components/ui/select.tsx @@ -0,0 +1,159 @@ +"use client" + +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { Check, ChevronDown, ChevronUp } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +} diff --git a/Core uniswap/Frontend/components/ui/tabs.tsx b/Core uniswap/Frontend/components/ui/tabs.tsx new file mode 100644 index 00000000..0f4caebb --- /dev/null +++ b/Core uniswap/Frontend/components/ui/tabs.tsx @@ -0,0 +1,55 @@ +"use client" + +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "@/lib/utils" + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/Core uniswap/Frontend/lib/utils.ts b/Core uniswap/Frontend/lib/utils.ts new file mode 100644 index 00000000..bd0c391d --- /dev/null +++ b/Core uniswap/Frontend/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/Core uniswap/Frontend/next.config.ts b/Core uniswap/Frontend/next.config.ts new file mode 100644 index 00000000..e9ffa308 --- /dev/null +++ b/Core uniswap/Frontend/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + /* config options here */ +}; + +export default nextConfig; diff --git a/Core uniswap/Frontend/package-lock.json b/Core uniswap/Frontend/package-lock.json new file mode 100644 index 00000000..2f4e7a49 --- /dev/null +++ b/Core uniswap/Frontend/package-lock.json @@ -0,0 +1,11357 @@ +{ + "name": "reusable", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "reusable", + "version": "0.1.0", + "dependencies": { + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-progress": "^1.1.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "next": "15.0.2", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", + "react-hot-toast": "^2.4.1", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7", + "thirdweb": "^5.67.0" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "15.0.2", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@coinbase/wallet-sdk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.2.0.tgz", + "integrity": "sha512-dkw3B3fNZ5T5Ei0A7iOTWK+aJEk2lnUQBOPYdXRo70tEXZQJ2dE4rmXx+ExWe9ObPYtgM9U0Q6GNWAWMpHKZtA==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "^1.4.0", + "clsx": "^1.2.1", + "eventemitter3": "^5.0.1", + "preact": "^10.24.2", + "vitest": "^2.1.2" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", + "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.2.0", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", + "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.13.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", + "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.12.0", + "@emotion/cache": "^11.13.0", + "@emotion/serialize": "^1.3.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz", + "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz", + "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.12.0", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/utils": "^1.4.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", + "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.1.tgz", + "integrity": "sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", + "license": "MIT" + }, + "node_modules/@google/model-viewer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-2.1.1.tgz", + "integrity": "sha512-5umyLoD5vMxlSVQwtmUXeNCNWs9dzmWykGm1qrHe/pCYrj/1lyJIgJRw+IxoMNodGqtcHEtfDhdNjRDM9yo/TA==", + "license": "Apache-2.0", + "dependencies": { + "lit": "^2.2.3", + "three": "^0.146.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/@motionone/animation": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz", + "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==", + "license": "MIT", + "dependencies": { + "@motionone/easing": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/dom": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz", + "integrity": "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A==", + "license": "MIT", + "dependencies": { + "@motionone/animation": "^10.18.0", + "@motionone/generators": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/easing": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", + "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", + "license": "MIT", + "dependencies": { + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/generators": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", + "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==", + "license": "MIT", + "dependencies": { + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/svelte": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", + "integrity": "sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==", + "license": "MIT", + "dependencies": { + "@motionone/dom": "^10.16.4", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/types": { + "version": "10.17.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", + "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==", + "license": "MIT" + }, + "node_modules/@motionone/utils": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", + "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", + "license": "MIT", + "dependencies": { + "@motionone/types": "^10.17.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/vue": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", + "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==", + "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion", + "license": "MIT", + "dependencies": { + "@motionone/dom": "^10.16.4", + "tslib": "^2.3.1" + } + }, + "node_modules/@next/env": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", + "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz", + "integrity": "sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz", + "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz", + "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz", + "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz", + "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz", + "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz", + "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz", + "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz", + "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.0.tgz", + "integrity": "sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==", + "bundleDependencies": [ + "napi-wasm" + ], + "license": "MIT", + "dependencies": { + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "napi-wasm": "^1.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@passwordless-id/webauthn": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@passwordless-id/webauthn/-/webauthn-1.6.2.tgz", + "integrity": "sha512-52Cna/kaJ6iuYgTko+LuHCY5NUgoJTQ+iLWbvCHWiI0pT+zUeKz1+g22mWGlSi/JDrFGwZTKG/PL2YDaQGo0qQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/passwordless-id" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.1.tgz", + "integrity": "sha512-QvYompk0X+8Yjlo/Fv4McrzxohDdM5GgLHyQcPpcsPvlOSXCGFjdbuyGL5dzRbg0GpknAjQJJZzdiRK7iWVuFQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x || ^19.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz", + "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.0.tgz", + "integrity": "sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz", + "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", + "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.3.tgz", + "integrity": "sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.25.0.tgz", + "integrity": "sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.25.0.tgz", + "integrity": "sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.25.0.tgz", + "integrity": "sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.25.0.tgz", + "integrity": "sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.25.0.tgz", + "integrity": "sha512-xpEIXhiP27EAylEpreCozozsxWQ2TJbOLSivGfXhU4G1TBVEYtUPi2pOZBnvGXHyOdLAUUhPnJzH3ah5cqF01g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.25.0.tgz", + "integrity": "sha512-sC5FsmZGlJv5dOcURrsnIK7ngc3Kirnx3as2XU9uER+zjfyqIjdcMVgzy4cOawhsssqzoAX19qmxgJ8a14Qrqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.25.0.tgz", + "integrity": "sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.25.0.tgz", + "integrity": "sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.25.0.tgz", + "integrity": "sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.25.0.tgz", + "integrity": "sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.25.0.tgz", + "integrity": "sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.25.0.tgz", + "integrity": "sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.25.0.tgz", + "integrity": "sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.25.0.tgz", + "integrity": "sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.25.0.tgz", + "integrity": "sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.25.0.tgz", + "integrity": "sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.25.0.tgz", + "integrity": "sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.25.0.tgz", + "integrity": "sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==", + "license": "MIT" + }, + "node_modules/@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "license": "MIT", + "dependencies": { + "@stablelib/int": "^1.0.1" + } + }, + "node_modules/@stablelib/bytes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==", + "license": "MIT" + }, + "node_modules/@stablelib/chacha": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/chacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", + "license": "MIT", + "dependencies": { + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==", + "license": "MIT" + }, + "node_modules/@stablelib/ed25519": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz", + "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==", + "license": "MIT", + "dependencies": { + "@stablelib/random": "^1.0.2", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==", + "license": "MIT" + }, + "node_modules/@stablelib/hkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", + "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", + "license": "MIT", + "dependencies": { + "@stablelib/hash": "^1.0.1", + "@stablelib/hmac": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/hmac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", + "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", + "license": "MIT", + "dependencies": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==", + "license": "MIT" + }, + "node_modules/@stablelib/keyagreement": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", + "license": "MIT", + "dependencies": { + "@stablelib/bytes": "^1.0.1" + } + }, + "node_modules/@stablelib/poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", + "license": "MIT", + "dependencies": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/random": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz", + "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha256": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", + "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha512": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", + "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==", + "license": "MIT" + }, + "node_modules/@stablelib/x25519": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz", + "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==", + "license": "MIT", + "dependencies": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.59.17", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.59.17.tgz", + "integrity": "sha512-jWdDiif8kaqnRGHNXAa9CnudtxY5v9DUxXhodgqX2Rwzj+1UwStDHEbBd9IA5C7VYAaJ2s+BxFR6PUBs8ERorA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.59.19", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.59.19.tgz", + "integrity": "sha512-xLRfyFyQOFcLltKCds0LijfC6/HQJrrTTnZB8ciyn74LIkVAm++vZJ6eUVG20RmJtdP8REdy7vSOYW4M3//XLA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.59.17" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", + "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/type-utils": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", + "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", + "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", + "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", + "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", + "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", + "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", + "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitest/expect": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz", + "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==", + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz", + "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==", + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz", + "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==", + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz", + "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==", + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.4", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz", + "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==", + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.4", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz", + "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==", + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz", + "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==", + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.4", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@walletconnect/core": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.2.tgz", + "integrity": "sha512-O9VUsFg78CbvIaxfQuZMsHcJ4a2Z16DRz/O4S+uOAcGKhH/i/ln8hp864Tb+xRvifWSzaZ6CeAVxk657F+pscA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.14", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.0.4", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.17.2", + "@walletconnect/utils": "2.17.2", + "@walletconnect/window-getters": "1.0.1", + "events": "3.3.0", + "lodash.isequal": "4.5.0", + "uint8arrays": "3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@walletconnect/environment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", + "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/environment/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/ethereum-provider": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.17.2.tgz", + "integrity": "sha512-o4aL4KkUKT+n0iDwGzC6IY4bl+9n8bwOeT2KwifaVHsFw/irhtRPlsAQQH4ezOiPyk8cri1KN9dPk/YeU0pe6w==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/modal": "2.7.0", + "@walletconnect/sign-client": "2.17.2", + "@walletconnect/types": "2.17.2", + "@walletconnect/universal-provider": "2.17.2", + "@walletconnect/utils": "2.17.2", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/events": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz", + "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==", + "license": "MIT", + "dependencies": { + "keyvaluestorage-interface": "^1.0.0", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/events/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/heartbeat": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", + "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", + "license": "MIT", + "dependencies": { + "@walletconnect/events": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/jsonrpc-http-connection": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz", + "integrity": "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.1", + "cross-fetch": "^3.1.4", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/jsonrpc-provider": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", + "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/jsonrpc-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", + "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", + "license": "MIT", + "dependencies": { + "events": "^3.3.0", + "keyvaluestorage-interface": "^1.0.0" + } + }, + "node_modules/@walletconnect/jsonrpc-utils": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", + "license": "MIT", + "dependencies": { + "@walletconnect/environment": "^1.0.1", + "@walletconnect/jsonrpc-types": "^1.0.3", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", + "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" + } + }, + "node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", + "dependencies": { + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "1.x" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@walletconnect/logger": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", + "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==", + "license": "MIT", + "dependencies": { + "@walletconnect/safe-json": "^1.0.2", + "pino": "7.11.0" + } + }, + "node_modules/@walletconnect/modal": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.7.0.tgz", + "integrity": "sha512-RQVt58oJ+rwqnPcIvRFeMGKuXb9qkgSmwz4noF8JZGUym3gUAzVs+uW2NQ1Owm9XOJAV+sANrtJ+VoVq1ftElw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/modal-core": "2.7.0", + "@walletconnect/modal-ui": "2.7.0" + } + }, + "node_modules/@walletconnect/modal-core": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.7.0.tgz", + "integrity": "sha512-oyMIfdlNdpyKF2kTJowTixZSo0PGlCJRdssUN/EZdA6H6v03hZnf09JnwpljZNfir2M65Dvjm/15nGrDQnlxSA==", + "license": "Apache-2.0", + "dependencies": { + "valtio": "1.11.2" + } + }, + "node_modules/@walletconnect/modal-ui": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.7.0.tgz", + "integrity": "sha512-gERYvU7D7K1ANCN/8vUgsE0d2hnRemfAFZ2novm9aZBg7TEd/4EgB+AqbJ+1dc7GhOL6dazckVq78TgccHb7mQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/modal-core": "2.7.0", + "lit": "2.8.0", + "motion": "10.16.2", + "qrcode": "1.5.3" + } + }, + "node_modules/@walletconnect/relay-api": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", + "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-types": "^1.0.2" + } + }, + "node_modules/@walletconnect/relay-auth": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz", + "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==", + "license": "MIT", + "dependencies": { + "@stablelib/ed25519": "^1.0.2", + "@stablelib/random": "^1.0.1", + "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "tslib": "1.14.1", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/@walletconnect/relay-auth/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/safe-json/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/sign-client": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.2.tgz", + "integrity": "sha512-/wigdCIQjlBXSWY43Id0IPvZ5biq4HiiQZti8Ljvx408UYjmqcxcBitbj2UJXMYkid7704JWAB2mw32I1HgshQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.17.2", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.17.2", + "@walletconnect/utils": "2.17.2", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", + "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/time/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/types": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.2.tgz", + "integrity": "sha512-j/+0WuO00lR8ntu7b1+MKe/r59hNwYLFzW0tTmozzhfAlDL+dYwWasDBNq4AH8NbVd7vlPCQWmncH7/6FVtOfQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/universal-provider": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.17.2.tgz", + "integrity": "sha512-yIWDhBODRa9J349d/i1sObzon0vy4n+7R3MvGQQYaU1EVrV+WfoGSRsu8U7rYsL067/MAUu9t/QrpPblaSbz7g==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.17.2", + "@walletconnect/types": "2.17.2", + "@walletconnect/utils": "2.17.2", + "events": "3.3.0", + "lodash": "4.17.21" + } + }, + "node_modules/@walletconnect/utils": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.2.tgz", + "integrity": "sha512-T7eLRiuw96fgwUy2A5NZB5Eu87ukX8RCVoO9lji34RFV4o2IGU9FhTEWyd4QQKI8OuQRjSknhbJs0tU0r0faPw==", + "license": "Apache-2.0", + "dependencies": { + "@ethersproject/hash": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@stablelib/chacha20poly1305": "1.0.1", + "@stablelib/hkdf": "1.0.1", + "@stablelib/random": "1.0.2", + "@stablelib/sha256": "1.0.1", + "@stablelib/x25519": "1.0.3", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.0.4", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.17.2", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "detect-browser": "5.3.0", + "elliptic": "6.6.0", + "query-string": "7.1.3", + "uint8arrays": "3.1.0" + } + }, + "node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/window-getters/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "license": "MIT", + "dependencies": { + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/window-metadata/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/abitype": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.6.tgz", + "integrity": "sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001677", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", + "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clipboardy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", + "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", + "license": "MIT", + "dependencies": { + "execa": "^8.0.1", + "is-wsl": "^3.1.0", + "is64bit": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crossws": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.1.tgz", + "integrity": "sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "license": "MIT" + }, + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/elliptic": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.2.tgz", + "integrity": "sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "15.0.2", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-port-please": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", + "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", + "license": "MIT" + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/goober": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", + "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", + "license": "MIT", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/h3": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.13.0.tgz", + "integrity": "sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": ">=0.2.0 <0.4.0", + "defu": "^6.1.4", + "destr": "^2.0.3", + "iron-webcrypto": "^1.2.1", + "ohash": "^1.1.4", + "radix3": "^1.1.2", + "ufo": "^1.5.4", + "uncrypto": "^0.1.3", + "unenv": "^1.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "license": "MIT" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/http-shutdown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", + "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "license": "Apache-2.0" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/input-otp": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.1.tgz", + "integrity": "sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz", + "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is64bit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", + "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "license": "MIT", + "dependencies": { + "system-architecture": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/keyvaluestorage-interface": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", + "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==", + "license": "MIT" + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/listhen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz", + "integrity": "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==", + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.4.1", + "@parcel/watcher-wasm": "^2.4.1", + "citty": "^0.1.6", + "clipboardy": "^4.0.0", + "consola": "^3.2.3", + "crossws": ">=0.2.0 <0.4.0", + "defu": "^6.1.4", + "get-port-please": "^3.1.2", + "h3": "^1.12.0", + "http-shutdown": "^1.2.2", + "jiti": "^2.1.2", + "mlly": "^1.7.1", + "node-forge": "^1.3.1", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "ufo": "^1.5.4", + "untun": "^0.1.3", + "uqr": "^0.1.2" + }, + "bin": { + "listen": "bin/listhen.mjs", + "listhen": "bin/listhen.mjs" + } + }, + "node_modules/listhen/node_modules/jiti": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.0.tgz", + "integrity": "sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-element": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/lucide-react": { + "version": "0.454.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz", + "integrity": "sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mipd": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", + "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wagmi-dev" + } + ], + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/mlly": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.2.tgz", + "integrity": "sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.12.1", + "pathe": "^1.1.2", + "pkg-types": "^1.2.0", + "ufo": "^1.5.4" + } + }, + "node_modules/motion": { + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", + "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", + "license": "MIT", + "dependencies": { + "@motionone/animation": "^10.15.1", + "@motionone/dom": "^10.16.2", + "@motionone/svelte": "^10.16.2", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "@motionone/vue": "^10.16.2" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz", + "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.0.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.18.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.0.2", + "@next/swc-darwin-x64": "15.0.2", + "@next/swc-linux-arm64-gnu": "15.0.2", + "@next/swc-linux-arm64-musl": "15.0.2", + "@next/swc-linux-x64-gnu": "15.0.2", + "@next/swc-linux-x64-musl": "15.0.2", + "@next/swc-win32-arm64-msvc": "15.0.2", + "@next/swc-win32-x64-msvc": "15.0.2", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "license": "MIT" + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ofetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.4", + "ufo": "^1.5.4" + } + }, + "node_modules/ohash": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==", + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==", + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pino": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz", + "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.0.0", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "v0.5.0", + "pino-std-serializers": "^4.0.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.1.0", + "safe-stable-stringify": "^2.1.0", + "sonic-boom": "^2.2.1", + "thread-stream": "^0.15.1" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "license": "MIT", + "dependencies": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==", + "license": "MIT" + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", + "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.2", + "pathe": "^1.1.2" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==", + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-compare": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", + "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/react": { + "version": "19.0.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-GbZ7hpPHQMiEu53BqEaPQVM/4GG4hARo+mqEEnx4rYporDvNvUjutiAFxYFSbu6sgHwcr7LeFv8htEOwALVA2A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-LrZf3DfHL6Fs07wwlUCHrzFTCMM19yA99MvJpfLokN4I2nBAZvREGZjZAn8VPiSfN72+i9j1eL4wB8gC695F3Q==", + "license": "MIT", + "dependencies": { + "scheduler": "0.25.0-rc-02c0e824-20241028" + }, + "peerDependencies": { + "react": "19.0.0-rc-02c0e824-20241028" + } + }, + "node_modules/react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "license": "MIT", + "dependencies": { + "goober": "^2.1.10" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/real-require": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", + "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.25.0.tgz", + "integrity": "sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.25.0", + "@rollup/rollup-android-arm64": "4.25.0", + "@rollup/rollup-darwin-arm64": "4.25.0", + "@rollup/rollup-darwin-x64": "4.25.0", + "@rollup/rollup-freebsd-arm64": "4.25.0", + "@rollup/rollup-freebsd-x64": "4.25.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.25.0", + "@rollup/rollup-linux-arm-musleabihf": "4.25.0", + "@rollup/rollup-linux-arm64-gnu": "4.25.0", + "@rollup/rollup-linux-arm64-musl": "4.25.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.25.0", + "@rollup/rollup-linux-riscv64-gnu": "4.25.0", + "@rollup/rollup-linux-s390x-gnu": "4.25.0", + "@rollup/rollup-linux-x64-gnu": "4.25.0", + "@rollup/rollup-linux-x64-musl": "4.25.0", + "@rollup/rollup-win32-arm64-msvc": "4.25.0", + "@rollup/rollup-win32-ia32-msvc": "4.25.0", + "@rollup/rollup-win32-x64-msvc": "4.25.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.25.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-GysnKjmMSaWcwsKTLzeJO0IhU3EyIiC0ivJKE6yDNLqt3IMxDByx8b6lSNXRNdN+ULUY0WLLjSPaZ0LuU/GnTg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/system-architecture": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", + "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thirdweb": { + "version": "5.67.0", + "resolved": "https://registry.npmjs.org/thirdweb/-/thirdweb-5.67.0.tgz", + "integrity": "sha512-2geMbjmL9isG1cTkPvzEhVWWZTunPJEFzP3mUxhaovU97z+2zTBaBj6wnR2XcKSk18tAL7+mD7kI3zOseaHtGg==", + "license": "Apache-2.0", + "dependencies": { + "@coinbase/wallet-sdk": "4.2.0", + "@emotion/react": "11.13.3", + "@emotion/styled": "11.13.0", + "@google/model-viewer": "2.1.1", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@passwordless-id/webauthn": "^1.6.1", + "@radix-ui/react-dialog": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-icons": "1.3.1", + "@radix-ui/react-tooltip": "1.1.3", + "@tanstack/react-query": "5.59.19", + "@walletconnect/ethereum-provider": "2.17.2", + "@walletconnect/sign-client": "2.17.2", + "abitype": "1.0.6", + "fuse.js": "7.0.0", + "input-otp": "^1.4.1", + "mipd": "0.0.7", + "uqr": "0.1.2", + "viem": "2.21.41" + }, + "bin": { + "thirdweb": "dist/esm/cli/bin.js", + "thirdweb-cli": "dist/esm/cli/bin.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@aws-sdk/client-lambda": "^3", + "@aws-sdk/credential-providers": "^3", + "@coinbase/wallet-mobile-sdk": "^1", + "@mobile-wallet-protocol/client": "0.1.1", + "@react-native-async-storage/async-storage": "^1 || ^2", + "ethers": "^5 || ^6", + "expo-linking": "^6", + "expo-web-browser": "^13", + "react": ">=18", + "react-native": "*", + "react-native-aes-gcm-crypto": "^0.2", + "react-native-quick-crypto": ">=0.7.0-rc.6 || >=0.7", + "react-native-svg": "^15", + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-kms": { + "optional": true + }, + "@aws-sdk/client-lambda": { + "optional": true + }, + "@aws-sdk/credential-providers": { + "optional": true + }, + "@coinbase/wallet-mobile-sdk": { + "optional": true + }, + "@mobile-wallet-protocol/client": { + "optional": true + }, + "@react-native-async-storage/async-storage": { + "optional": true + }, + "ethers": { + "optional": true + }, + "expo-linking": { + "optional": true + }, + "expo-web-browser": { + "optional": true + }, + "react": { + "optional": true + }, + "react-native": { + "optional": true + }, + "react-native-aes-gcm-crypto": { + "optional": true + }, + "react-native-passkey": { + "optional": true + }, + "react-native-quick-crypto": { + "optional": true + }, + "react-native-svg": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/thread-stream": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz", + "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==", + "license": "MIT", + "dependencies": { + "real-require": "^0.1.0" + } + }, + "node_modules/three": { + "version": "0.146.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.146.0.tgz", + "integrity": "sha512-1lvNfLezN6OJ9NaFAhfX4sm5e9YCzHtaRgZ1+B4C+Hv6TibRMsuBAM5/wVKzxjpYIlMymvgsHEFrrigEfXnb2A==", + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, + "node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unenv": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz", + "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3", + "defu": "^6.1.4", + "mime": "^3.0.0", + "node-fetch-native": "^1.6.4", + "pathe": "^1.1.2" + } + }, + "node_modules/unstorage": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.13.1.tgz", + "integrity": "sha512-ELexQHUrG05QVIM/iUeQNdl9FXDZhqLJ4yP59fnmn2jGUh0TEulwOgov1ubOb3Gt2ZGK/VMchJwPDNVEGWQpRg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^3.6.0", + "citty": "^0.1.6", + "destr": "^2.0.3", + "h3": "^1.13.0", + "listhen": "^1.9.0", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.4", + "ofetch": "^1.4.1", + "ufo": "^1.5.4" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.7.0", + "@azure/cosmos": "^4.1.1", + "@azure/data-tables": "^13.2.2", + "@azure/identity": "^4.5.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.25.0", + "@capacitor/preferences": "^6.0.2", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/kv": "^1.0.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.1" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + } + } + }, + "node_modules/untun": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", + "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.5", + "consola": "^3.2.3", + "pathe": "^1.1.1" + }, + "bin": { + "untun": "bin/untun.mjs" + } + }, + "node_modules/uqr": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", + "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/valtio": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.11.2.tgz", + "integrity": "sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "2.5.1", + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/viem": { + "version": "2.21.41", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.41.tgz", + "integrity": "sha512-FxDALzW6I9lGSISbGKqGLfsc4GCtALrgm3mpQcOi7gpyTBkKkl39IWgRjAK1KGNOOvqneQmUKSxWsApkUYSn5w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.11.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0", + "abitype": "1.0.6", + "isows": "1.0.6", + "webauthn-p256": "0.0.10", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/viem/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/vite": { + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz", + "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==", + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz", + "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==", + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.4", + "@vitest/mocker": "2.1.4", + "@vitest/pretty-format": "^2.1.4", + "@vitest/runner": "2.1.4", + "@vitest/snapshot": "2.1.4", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.4", + "@vitest/ui": "2.1.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/webauthn-p256": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz", + "integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Core uniswap/Frontend/package.json b/Core uniswap/Frontend/package.json new file mode 100644 index 00000000..fcb6bf1c --- /dev/null +++ b/Core uniswap/Frontend/package.json @@ -0,0 +1,38 @@ +{ + "name": "reusable", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-progress": "^1.1.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "next": "15.0.2", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", + "react-hot-toast": "^2.4.1", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7", + "thirdweb": "^5.67.0" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "15.0.2", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} diff --git a/Core uniswap/Frontend/postcss.config.mjs b/Core uniswap/Frontend/postcss.config.mjs new file mode 100644 index 00000000..1a69fd2a --- /dev/null +++ b/Core uniswap/Frontend/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/Core uniswap/Frontend/public/file.svg b/Core uniswap/Frontend/public/file.svg new file mode 100644 index 00000000..004145cd --- /dev/null +++ b/Core uniswap/Frontend/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Core uniswap/Frontend/public/globe.svg b/Core uniswap/Frontend/public/globe.svg new file mode 100644 index 00000000..567f17b0 --- /dev/null +++ b/Core uniswap/Frontend/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Core uniswap/Frontend/public/next.svg b/Core uniswap/Frontend/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/Core uniswap/Frontend/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Core uniswap/Frontend/public/vercel.svg b/Core uniswap/Frontend/public/vercel.svg new file mode 100644 index 00000000..77053960 --- /dev/null +++ b/Core uniswap/Frontend/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Core uniswap/Frontend/public/window.svg b/Core uniswap/Frontend/public/window.svg new file mode 100644 index 00000000..b2b2a44f --- /dev/null +++ b/Core uniswap/Frontend/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Core uniswap/Frontend/tailwind.config.ts b/Core uniswap/Frontend/tailwind.config.ts new file mode 100644 index 00000000..ebc9f38b --- /dev/null +++ b/Core uniswap/Frontend/tailwind.config.ts @@ -0,0 +1,63 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + darkMode: ["class"], + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))' + } + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + } + } + }, + plugins: [require("tailwindcss-animate")], +}; +export default config; diff --git a/Core uniswap/Frontend/tsconfig.json b/Core uniswap/Frontend/tsconfig.json new file mode 100644 index 00000000..d8b93235 --- /dev/null +++ b/Core uniswap/Frontend/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/Core uniswap/README.md b/Core uniswap/README.md new file mode 100644 index 00000000..d04248da --- /dev/null +++ b/Core uniswap/README.md @@ -0,0 +1,13 @@ +# Sample Hardhat Project + +This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, and a Hardhat Ignition module that deploys that contract. + +Try running some of the following tasks: + +```shell +npx hardhat help +npx hardhat test +REPORT_GAS=true npx hardhat test +npx hardhat node +npx hardhat ignition deploy ./ignition/modules/Lock.js +``` diff --git a/Core uniswap/contracts/core/Factory.sol b/Core uniswap/contracts/core/Factory.sol new file mode 100644 index 00000000..4eedaeed --- /dev/null +++ b/Core uniswap/contracts/core/Factory.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import "./interfaces/IPool.sol"; +import "./Pool.sol"; + +error PoolFactory__IdenticalAddress(); +error PoolFactory__ZeroAddress(); +error PoolFactory__PoolExists(); +error PoolFactory__NotSetter(); + +contract PoolFactory { + address private feeReceiver; + mapping(address => bool) private feeReceiverSetter; + + mapping(address => mapping(address => address)) private getPairs; + address[] private allPairs; + + event PoolCreated(address tokenA, address tokenB, address poolAddress); + + constructor(address _feeReceiverSetter) { + feeReceiverSetter[_feeReceiverSetter] = true; + } + + function createPool( + address tokenA, + address tokenB + ) external returns (address poolAddress) { + if (tokenA == tokenB) revert PoolFactory__IdenticalAddress(); + (address token0, address token1) = tokenA < tokenB + ? (tokenA, tokenB) + : (tokenB, tokenA); + // since tokenA is the smaller address we can check if its == address(0); + if (token0 == address(0)) revert PoolFactory__ZeroAddress(); + if (getPairs[token0][token1] != address(0)) + revert PoolFactory__PoolExists(); + + bytes memory bytecode = type(Pool).creationCode; + bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB)); + + //TODO: put the salt + + assembly { + poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt) + } + + Pool(poolAddress).init(tokenA, tokenB); + + getPairs[token0][token1] = poolAddress; + getPairs[token1][token0] = poolAddress; + allPairs.push(poolAddress); + + emit PoolCreated(token0, token1, poolAddress); + } + + function getTokenPairs( + address _tokenA, + address _tokenB + ) external view returns (address) { + return getPairs[_tokenA][_tokenB]; + } + + function setFeeReceiver(address _feeReceiver) external { + checkIfSetter(); + + feeReceiver = _feeReceiver; + } + + function addToFeeReceiverSetter(address _feeReceiverSetter) external { + checkIfSetter(); + + feeReceiverSetter[_feeReceiverSetter] = true; + } + + function removeFromFeeReceiverSetter(address _feeReceiverSetter) external { + checkIfSetter(); + + feeReceiverSetter[_feeReceiverSetter] = false; + } + + function checkIfSetter() internal view { + bool ifSetter = feeReceiverSetter[msg.sender]; + if (!ifSetter) revert PoolFactory__NotSetter(); + } +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/LiquidityProvider.sol b/Core uniswap/contracts/core/LiquidityProvider.sol new file mode 100644 index 00000000..62a90cc1 --- /dev/null +++ b/Core uniswap/contracts/core/LiquidityProvider.sol @@ -0,0 +1,179 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +// import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "./interfaces/IFactory.sol"; +import "./interfaces/IPool.sol"; +import "./interfaces/IWedu.sol"; +import "./libraries/Library.sol"; + +error LiquidityProvider__InsufficientAmount(); +error LiquidityProvider__InsufficientOutputAmount(); +error LiquidityProvider__EDUTransferFailed(); + +contract LiquidityProvider { + address private immutable factoryAddress; + address private immutable WEDU; + + constructor(address _factoryAddress, address _WEDU) { + factoryAddress = _factoryAddress; + WEDU = _WEDU; + } + + function _addLiquidity( + address _tokenA, + address _tokenB, + uint256 amountOfTokenADesired, + uint256 amountOfTokenBDesired, + uint256 minTokenA, + uint256 minTokenB + ) internal returns (uint256 amountA, uint256 amountB) { + address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB); + if (pair == address(0)) + pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB); + + (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves(); + + if (reserveA == 0 && reserveB == 0) { + (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired); + } else { + uint256 optimalAmountOfTokenB = quote( + amountOfTokenADesired, + reserveA, + reserveB + ); + if (optimalAmountOfTokenB <= amountOfTokenBDesired) { + if (optimalAmountOfTokenB < minTokenB) + revert LiquidityProvider__InsufficientAmount(); + (amountA, amountB) = ( + amountOfTokenADesired, + optimalAmountOfTokenB + ); + } else { + uint256 amountAOptimal = quote( + amountOfTokenBDesired, + reserveB, + reserveA + ); + assert(amountAOptimal <= amountOfTokenADesired); + if (amountAOptimal < minTokenA) + revert LiquidityProvider__InsufficientAmount(); + (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired); + } + } + } + + function addLiquidity( + address tokenA, + address tokenB, + uint256 amountOfTokenADesired, + uint256 amountOfTokenBDesired, + uint256 minTokenA, + uint256 minTokenB + ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) { + (amountA, amountB) = _addLiquidity( + tokenA, + tokenB, + amountOfTokenADesired, + amountOfTokenBDesired, + minTokenA, + minTokenB + ); + address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB); + IERC20(tokenA).transferFrom(msg.sender, pair, amountA); + IERC20(tokenB).transferFrom(msg.sender, pair, amountB); + liquidity = IPool(pair).mint(msg.sender); + } + + // function addLiquidityEdu( + // address tokenA + // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) { + // (amountA, amountEDU) = _addLiquidity(); + // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU); + // IERC20(tokenA).transferFrom(msg.sender, pair, amountA); + // IWEDU(WEDU).deposit{value: amountEDU}(); + // assert(IWEDU(WEDU).transfer(pair, amountEDU)); + // liquidity = IPool(pair).mint(msg.sender); + + // if (msg.value > amountEDU) + // (bool success, ) = msg.sender.call{value: value}(""); + // if (!success) revert LiquidityProvider__EDUTransferFailed(); + // } + + // TODO: Remove liquidity & liquidityEdu + + // Swapppp + + function _swap( + uint256[] memory amounts, + address[] memory path, + address _pair, + address _to + ) internal { + for (uint i; i < path.length - 1; i++) { + (address input, address output) = (path[i], path[i + 1]); + (address token0, ) = DefiLibrary.sortTokens(input, output); + uint256 amountOut = amounts[i + 1]; + (uint256 amount0Out, uint256 amount1Out) = input == token0 + ? (amountOut, uint256(0)) + : (uint256(0), amountOut); + /**TODO: In case of multiple hops */ + IPool(_pair).swap(amountOut, amounts[i], _to); + } + } + + function swapExactTokensForTokens( + uint amountIn, + uint amountOutMin, + address[] calldata path + ) + external + returns ( + /**address to*/ + uint[] memory amounts + ) + { + address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]); + + amounts = getAmountsOut(pair, amountIn, path); + if (amounts[amounts.length - 1] < amountOutMin) + revert LiquidityProvider__InsufficientOutputAmount(); + + IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]); + _swap(amounts, path, pair, msg.sender); + } + + function quote( + uint amountA, + uint reserveA, + uint reserveB + ) internal pure returns (uint amountB) { + require(amountA > 0, "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT"); + require( + reserveA > 0 && reserveB > 0, + "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + ); + amountB = (amountA * reserveB) / reserveA; + } + + // function getAmountsOut() public view returns (uint256) {} + + function getAmountsOut( + address pair, + uint amountIn, + address[] memory path + ) public view returns (uint[] memory amounts) { + require(path.length >= 2, "UniswapV2Library: INVALID_PATH"); + amounts = new uint[](path.length); + amounts[0] = amountIn; + for (uint i; i < path.length - 1; i++) { + (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves(); + amounts[i + 1] = DefiLibrary.getAmountOut( + amounts[i], + reserveIn, + reserveOut + ); + } + } +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/Math.sol b/Core uniswap/contracts/core/Math.sol new file mode 100644 index 00000000..7c349ccc --- /dev/null +++ b/Core uniswap/contracts/core/Math.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +// a library for performing various math operations + +library Math { + function min(uint x, uint y) internal pure returns (uint z) { + z = x < y ? x : y; + } + + // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) + function sqrt(uint y) internal pure returns (uint z) { + if (y > 3) { + z = y; + uint x = y / 2 + 1; + while (x < z) { + z = x; + x = (y / x + x) / 2; + } + } else if (y != 0) { + z = 1; + } + } +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/Pool.sol b/Core uniswap/contracts/core/Pool.sol new file mode 100644 index 00000000..e9296bc5 --- /dev/null +++ b/Core uniswap/contracts/core/Pool.sol @@ -0,0 +1,130 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "./Math.sol"; + +error PoolFactory__NotOwner(); +error PoolFactory__InsufficientLiquidity(); +error PoolFactory__InsufficientFunds(); + +contract Pool is ERC20 { + using Math for uint256; + + address private immutable factory; + address private tokenA; + address private tokenB; + + uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3; + + uint256 private reserveA; + uint256 private reserveB; + + uint256 private totalLpShares; + + constructor() ERC20("LiquidityTokens", "LP") { + factory = msg.sender; + } + + function init(address _tokenA, address _tokenB) external { + if (factory != msg.sender) revert PoolFactory__NotOwner(); + + tokenA = _tokenA; + tokenB = _tokenB; + } + + function _update(uint256 _balanceA, uint256 _balanceB) private { + reserveA = _balanceA; + reserveB = _balanceB; + } + + function mint(address _to) external returns (uint256 liquidity) { + (uint256 _reserveA, uint256 _reserveB) = getTokenReserves(); + uint256 _balanceA = IERC20(tokenA).balanceOf(address(this)); + uint256 _balanceB = IERC20(tokenB).balanceOf(address(this)); + uint256 depositOfTokenA = _balanceA - _reserveA; + uint256 depositOfTokenB = _balanceB - _reserveB; + + uint256 _totalSupply = totalSupply(); + if (_totalSupply == 0) { + liquidity = + Math.sqrt(depositOfTokenA * depositOfTokenB) - + (MINIMUM_LIQUIDITY); + _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained + } else { + liquidity = Math.min( + (depositOfTokenA * _totalSupply) / _reserveA, + (depositOfTokenB * _totalSupply) / _reserveB + ); + } + if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity(); + _mint(_to, liquidity); + _update(_balanceA, _balanceB); + + // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB); + } + + // BURN + function liquidateLpTokens( + address to + ) external returns (uint256 amountA, uint256 amountB) { + (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings + address _tokenA = tokenA; // gas savings + address _tokenB = tokenB; // gas savings + uint balanceA = IERC20(_tokenA).balanceOf(address(this)); + uint balanceB = IERC20(_tokenB).balanceOf(address(this)); + uint liquidity = balanceOf(to); + + uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee + amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution + amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution + if (amountA <= 0 && amountB <= 0) + revert PoolFactory__InsufficientLiquidity(); + _burn(address(this), liquidity); + IERC20(_tokenA).transfer(to, amountA); + IERC20(_tokenB).transfer(to, amountB); + balanceA = IERC20(_tokenA).balanceOf(address(this)); + balanceB = IERC20(_tokenB).balanceOf(address(this)); + + _update(balanceA, balanceB); + + // emit Burn(msg.sender, amount0, amountB, to); + } + + function swap( + uint256 amount0Out, + uint256 amount1Out, + address to /**bytes calldata data */ + ) external { + if (amount0Out <= 0 && amount1Out <= 0) + revert PoolFactory__InsufficientFunds(); + (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); + if (amount0Out > _reserve0 || amount1Out > _reserve1) + revert PoolFactory__InsufficientLiquidity(); + uint256 balanceA; + uint256 balanceB; + { + address _tokenA = tokenA; + address _tokenB = tokenB; + if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out); + if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out); + balanceA = IERC20(_tokenA).balanceOf(address(this)); + balanceB = IERC20(_tokenB).balanceOf(address(this)); + } + + _update(balanceA, balanceB); + } + + function getTokenReserves() public view returns (uint256, uint256) { + return (reserveA, reserveB); + } + + // force reserves to match balances + function sync() external { + _update( + IERC20(tokenA).balanceOf(address(this)), + IERC20(tokenB).balanceOf(address(this)) + ); + } +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/interfaces/IFactory.sol b/Core uniswap/contracts/core/interfaces/IFactory.sol new file mode 100644 index 00000000..74bb0739 --- /dev/null +++ b/Core uniswap/contracts/core/interfaces/IFactory.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +interface IFactory { + function getTokenPairs( + address tokenA, + address tokenB + ) external returns (address); + + function createPool( + address tokenA, + address tokenB + ) external returns (address poolPair); +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/interfaces/IPool.sol b/Core uniswap/contracts/core/interfaces/IPool.sol new file mode 100644 index 00000000..90c00996 --- /dev/null +++ b/Core uniswap/contracts/core/interfaces/IPool.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +interface IPool { + // event PairCreated(address indexed token0, address indexed token1, address pair, uint); + + function init(address _tokenA, address _tokenB) external; + + function mint(address _to) external returns (uint256); + + function liquidateLpTokens( + address to + ) external returns (uint256 amountA, uint256 amountB); + + function getTokenReserves() external view returns (uint256, uint256); + + function swap( + uint256 amount0Out, + uint256 amount1Out, + address to /**bytes calldata data */ + ) external; +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/interfaces/IWedu.sol b/Core uniswap/contracts/core/interfaces/IWedu.sol new file mode 100644 index 00000000..fd557639 --- /dev/null +++ b/Core uniswap/contracts/core/interfaces/IWedu.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +interface IWEDU { + function deposit() external payable; + + function transfer(address to, uint value) external returns (bool); + + function withdraw(uint) external; +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/libraries/Library.sol b/Core uniswap/contracts/core/libraries/Library.sol new file mode 100644 index 00000000..a81b9196 --- /dev/null +++ b/Core uniswap/contracts/core/libraries/Library.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.9; + +error PoolFactory__IdenticalAddress(); +error PoolFactory__ZeroAddress(); + +library DefiLibrary { + // returns sorted token addresses, used to handle return values from pairs sorted in this order + function sortTokens( + address tokenA, + address tokenB + ) internal pure returns (address token0, address token1) { + if (tokenA == tokenB) revert PoolFactory__IdenticalAddress(); + (token0, token1) = tokenA < tokenB + ? (tokenA, tokenB) + : (tokenB, tokenA); + // since tokenA is the smaller address we can check if its == address(0); + if (token0 == address(0)) revert PoolFactory__ZeroAddress(); + } + + // performs chained getAmountOut calculations on any number of pairs + // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset + function getAmountOut( + uint amountIn, + uint reserveIn, + uint reserveOut + ) internal pure returns (uint amountOut) { + require(amountIn > 0, "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT"); + require( + reserveIn > 0 && reserveOut > 0, + "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + ); + uint amountInWithFee = amountIn * 997; + uint numerator = amountInWithFee * reserveOut; + uint denominator = (reserveIn * 1000) + (amountInWithFee); + amountOut = numerator / denominator; + } +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol b/Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol new file mode 100644 index 00000000..8f057f9b --- /dev/null +++ b/Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract AppleToken is ERC20 { + constructor() ERC20("Apple", "APT") {} + + function mint(address _to, uint256 amount) public { + _mint(_to, amount); + } + + // TODO: transfer to burn +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol b/Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol new file mode 100644 index 00000000..885ff6e6 --- /dev/null +++ b/Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract CherryToken is ERC20 { + constructor() ERC20("Cherry", "CHT") {} + + function mint(address _to, uint256 amount) public { + _mint(_to, amount); + } + + // TODO: transfer to burn +} \ No newline at end of file diff --git a/Core uniswap/contracts/core/wrapped-native-token/WCore.sol b/Core uniswap/contracts/core/wrapped-native-token/WCore.sol new file mode 100644 index 00000000..b178c244 --- /dev/null +++ b/Core uniswap/contracts/core/wrapped-native-token/WCore.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract WrappedCoreToken is ERC20 { + constructor() ERC20("WrappedEdu", "WEDU") {} + + // function deposit(uint256 amount) public payable { + // _mint(msg.sender, amount); + // } + + function mint(address _to, uint256 amount) public { + _mint(_to, amount); + } + + // TODO: transfer to burn +} \ No newline at end of file diff --git a/Core uniswap/hardhat.config.js b/Core uniswap/hardhat.config.js new file mode 100644 index 00000000..e328174d --- /dev/null +++ b/Core uniswap/hardhat.config.js @@ -0,0 +1,69 @@ +require("@nomicfoundation/hardhat-toolbox"); +require("dotenv").config(); + +/** @type import('hardhat/config').HardhatUserConfig */ + +const SEPOLIA_RPC_URL = process.env.SEPOLIA_RPC_URL; +const PRIVATE_KEY = process.env.PRIVATE_KEY; + +const CORE_RPC_URL = process.env.CORE_RPC_URL; + +module.exports = { + solidity: { + compilers: [ + { + version: '0.8.9', + settings: { + evmVersion: 'paris', + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + { version: "0.8.19", settings: { + evmVersion: 'paris', + optimizer: { + enabled: true, + runs: 200, + }, + }, }, + { version: "0.8.20", settings: { + evmVersion: 'paris', + optimizer: { + enabled: true, + runs: 200, + }, + }, }, + { version: "0.7.6" }, + { version: "0.5.16" }, + { version: "0.6.6" }, + ], + }, + + networks: { + localhost: { + url: "http://127.0.0.1:8545/", + // accounts: Thanks hardhat! + chainId: 31337, + allowUnlimitedContractSize: true, + }, + sepolia: { + url: SEPOLIA_RPC_URL, + accounts: [PRIVATE_KEY], + chainId: 11155111, + blockConfirmations: 2, + }, + core: { + url: 'https://rpc.test.btcs.network', + accounts: [PRIVATE_KEY], + chainId: 1115, + }, + }, + + namedAccounts: { + deployer: { + default: 0, + }, + }, +}; \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json new file mode 100644 index 00000000..44fecd38 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json new file mode 100644 index 00000000..a4d5abd0 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json @@ -0,0 +1,342 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CherryToken", + "sourceName": "contracts/core/wrapped-native-token/CherryToken.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json new file mode 100644 index 00000000..44fecd38 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json new file mode 100644 index 00000000..016ad5d9 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json @@ -0,0 +1,342 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "WrappedEduToken", + "sourceName": "contracts/core/wrapped-native-token/WEdu.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json b/Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json new file mode 100644 index 00000000..39080d8c --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json @@ -0,0 +1,79796 @@ +{ + "id": "6919de14a125c32fee1b7b138baa53da", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "contracts/core/Factory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}" + }, + "contracts/core/interfaces/IFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}" + }, + "contracts/core/interfaces/IPool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}" + }, + "contracts/core/interfaces/IWedu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}" + }, + "contracts/core/libraries/Library.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}" + }, + "contracts/core/LiquidityProvider.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}" + }, + "contracts/core/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}" + }, + "contracts/core/Pool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}" + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEduToken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n // function deposit(uint256 amount) public payable {\r\n // _mint(msg.sender, amount);\r\n // }\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2397, + "file": "contracts/core/Pool.sol", + "start": 2380 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2416, + "file": "contracts/core/Pool.sol", + "start": 2399 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4393, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4375 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4413, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4395 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 136 + ], + "IERC20Errors": [ + 41 + ], + "IERC721Errors": [ + 89 + ] + }, + "id": 137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "138:141:0", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 41, + "linearizedBaseContracts": [ + 41 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "309:309:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 11, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "654:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "670:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "687:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:0" + }, + "src": "623:80:0" + }, + { + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "709:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 16, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "891:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:0" + }, + "src": "866:41:0" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "913:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 21, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "1104:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "src": "1077:45:0" + }, + { + "documentation": { + "id": 22, + "nodeType": "StructuredDocumentation", + "src": "1128:345:0", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 30, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1511:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1528:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1547:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:0" + }, + "src": "1478:85:0" + }, + { + "documentation": { + "id": 31, + "nodeType": "StructuredDocumentation", + "src": "1569:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 35, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1775:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:0" + }, + "src": "1748:45:0" + }, + { + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "1799:195:0", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 40, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:0" + }, + "src": "1999:43:0" + } + ], + "scope": 137, + "src": "280:1764:0", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 42, + "nodeType": "StructuredDocumentation", + "src": "2046:143:0", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2220:219:0", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 47, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:0", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "2469:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:0" + }, + "src": "2444:40:0" + }, + { + "documentation": { + "id": 48, + "nodeType": "StructuredDocumentation", + "src": "2490:132:0", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 52, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2656:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:0" + }, + "src": "2627:46:0" + }, + { + "documentation": { + "id": 53, + "nodeType": "StructuredDocumentation", + "src": "2679:289:0", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 61, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3000:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3016:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3033:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:0" + }, + "src": "2973:75:0" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "3054:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 66, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "3237:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 63, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:0" + }, + "src": "3211:42:0" + }, + { + "documentation": { + "id": 67, + "nodeType": "StructuredDocumentation", + "src": "3259:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 71, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "3451:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:0" + }, + "src": "3423:46:0" + }, + { + "documentation": { + "id": 72, + "nodeType": "StructuredDocumentation", + "src": "3475:247:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 78, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3760:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3778:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:0" + }, + "src": "3727:68:0" + }, + { + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "3801:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 83, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "4008:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:0" + }, + "src": "3980:46:0" + }, + { + "documentation": { + "id": 84, + "nodeType": "StructuredDocumentation", + "src": "4032:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 88, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "4262:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:0" + }, + "src": "4234:46:0" + } + ], + "scope": 137, + "src": "2190:2092:0", + "usedErrors": [ + 47, + 52, + 61, + 66, + 71, + 78, + 83, + 88 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 90, + "nodeType": "StructuredDocumentation", + "src": "4284:145:0", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "4461:361:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 101, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4860:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4876:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4893:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4909:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:0" + }, + "src": "4827:99:0" + }, + { + "documentation": { + "id": 102, + "nodeType": "StructuredDocumentation", + "src": "4932:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 106, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "5116:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:0" + }, + "src": "5089:43:0" + }, + { + "documentation": { + "id": 107, + "nodeType": "StructuredDocumentation", + "src": "5138:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 111, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "5331:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:0" + }, + "src": "5302:47:0" + }, + { + "documentation": { + "id": 112, + "nodeType": "StructuredDocumentation", + "src": "5355:256:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 118, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:0" + }, + "src": "5616:68:0" + }, + { + "documentation": { + "id": 119, + "nodeType": "StructuredDocumentation", + "src": "5690:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 123, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:0", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "5898:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:0" + }, + "src": "5869:47:0" + }, + { + "documentation": { + "id": 124, + "nodeType": "StructuredDocumentation", + "src": "5922:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 128, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "6153:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:0" + }, + "src": "6124:47:0" + }, + { + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "6177:280:0", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 135, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6494:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6513:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:0" + }, + "src": "6462:73:0" + } + ], + "scope": 137, + "src": "4430:2107:0", + "usedErrors": [ + 101, + 106, + 111, + 118, + 123, + 128, + 135 + ], + "usedEvents": [] + } + ], + "src": "112:6426:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 140, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 730, + "src": "131:36:1", + "symbolAliases": [ + { + "foreign": { + "id": 139, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "139:6:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 142, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 756, + "src": "168:63:1", + "symbolAliases": [ + { + "foreign": { + "id": 141, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "176:14:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 144, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 786, + "src": "232:48:1", + "symbolAliases": [ + { + "foreign": { + "id": 143, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "240:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 146, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 137, + "src": "281:65:1", + "symbolAliases": [ + { + "foreign": { + "id": 145, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "289:12:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 148, + "name": "Context", + "nameLocations": [ + "1133:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 785, + "src": "1133:7:1" + }, + "id": 149, + "nodeType": "InheritanceSpecifier", + "src": "1133:7:1" + }, + { + "baseName": { + "id": 150, + "name": "IERC20", + "nameLocations": [ + "1142:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "1142:6:1" + }, + "id": 151, + "nodeType": "InheritanceSpecifier", + "src": "1142:6:1" + }, + { + "baseName": { + "id": 152, + "name": "IERC20Metadata", + "nameLocations": [ + "1150:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 755, + "src": "1150:14:1" + }, + "id": 153, + "nodeType": "InheritanceSpecifier", + "src": "1150:14:1" + }, + { + "baseName": { + "id": 154, + "name": "IERC20Errors", + "nameLocations": [ + "1166:12:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "1166:12:1" + }, + "id": 155, + "nodeType": "InheritanceSpecifier", + "src": "1166:12:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "348:757:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications." + }, + "fullyImplemented": true, + "id": 651, + "linearizedBaseContracts": [ + 651, + 41, + 755, + 729, + 785 + ], + "name": "ERC20", + "nameLocation": "1124:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1229:9:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1185:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 158, + "keyName": "account", + "keyNameLocation": "1201:7:1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1185:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1317:11:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1245:83:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 164, + "keyName": "account", + "keyNameLocation": "1261:7:1", + "keyType": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1245:63:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 163, + "keyName": "spender", + "keyNameLocation": "1288:7:1", + "keyType": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1272:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1351:12:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1335:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1385:5:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1370:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1370:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1411:7:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1396:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 170, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 187, + "nodeType": "Block", + "src": "1657:57:1", + "statements": [ + { + "expression": { + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 179, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 180, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "1675:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1667:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "1667:13:1" + }, + { + "expression": { + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "1690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 184, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "1700:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1690:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "1690:17:1" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "1425:171:1", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 188, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1627:5:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1613:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 173, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1613:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1648:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1634:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1634:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1612:44:1" + }, + "returnParameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1657:0:1" + }, + "scope": 651, + "src": "1601:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 742 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "1839:29:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1856:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "1849:12:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "1720:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "1788:4:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1792:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "1824:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1824:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1823:15:1" + }, + "scope": 651, + "src": "1779:89:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 748 + ], + "body": { + "id": 205, + "nodeType": "Block", + "src": "2043:31:1", + "statements": [ + { + "expression": { + "id": 203, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 202, + "id": 204, + "nodeType": "Return", + "src": "2053:14:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "1874:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "1990:6:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:1" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2028:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2028:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2027:15:1" + }, + "scope": 651, + "src": "1981:93:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 214, + "nodeType": "Block", + "src": "2763:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2780:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 211, + "id": 213, + "nodeType": "Return", + "src": "2773:9:1" + } + ] + }, + "documentation": { + "id": 207, + "nodeType": "StructuredDocumentation", + "src": "2080:622:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2716:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [], + "src": "2724:2:1" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2756:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 209, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2756:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2755:7:1" + }, + "scope": 651, + "src": "2707:82:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 678 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "2910:36:1", + "statements": [ + { + "expression": { + "id": 221, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2927:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 220, + "id": 222, + "nodeType": "Return", + "src": "2920:19:1" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "2795:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2858:11:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:2:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "2901:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2900:9:1" + }, + "scope": 651, + "src": "2849:97:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 236, + "nodeType": "Block", + "src": "3078:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "3095:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3095:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 231, + "id": 235, + "nodeType": "Return", + "src": "3088:25:1" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "2952:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3013:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "account", + "nameLocation": "3031:7:1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3022:17:1" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3068:9:1" + }, + "scope": 651, + "src": "3004:116:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 260, + "nodeType": "Block", + "src": "3390:103:1", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3408:5:1", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "3400:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 249, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3416:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3400:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 254, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3455:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3459:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3438:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3438:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "3438:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 246, + "id": 259, + "nodeType": "Return", + "src": "3475:11:1" + } + ] + }, + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3126:184:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3324:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "to", + "nameLocation": "3341:2:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3333:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "value", + "nameLocation": "3353:5:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3345:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3332:27:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3384:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3384:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3383:6:1" + }, + "scope": 651, + "src": "3315:178:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 706 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "3640:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 271, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 272, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "3669:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "3676:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 270, + "id": 276, + "nodeType": "Return", + "src": "3650:34:1" + } + ] + }, + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "3499:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3560:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3578:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3570:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3570:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3593:7:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3585:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3569:32:1" + }, + "returnParameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3631:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3630:9:1" + }, + "scope": 651, + "src": "3551:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 716 + ], + "body": { + "id": 301, + "nodeType": "Block", + "src": "4077:107:1", + "statements": [ + { + "assignments": [ + 289 + ], + "declarations": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4095:5:1", + "nodeType": "VariableDeclaration", + "scope": 301, + "src": "4087:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4087:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 292, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 290, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4103:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4103:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4087:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 294, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4134:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 295, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4150:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 293, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 542, + "src": "4125:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4125:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4125:31:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4173:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 287, + "id": 300, + "nodeType": "Return", + "src": "4166:11:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "3697:296:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4007:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4023:7:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4015:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4015:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "value", + "nameLocation": "4040:5:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4032:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:32:1" + }, + "returnParameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4071:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4071:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4070:6:1" + }, + "scope": 651, + "src": "3998:186:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 728 + ], + "body": { + "id": 333, + "nodeType": "Block", + "src": "4869:151:1", + "statements": [ + { + "assignments": [ + 315 + ], + "declarations": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4887:7:1", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "4879:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 316, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4897:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4897:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 320, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 321, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "4941:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4950:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 319, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "4919:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 324, + "nodeType": "ExpressionStatement", + "src": "4919:37:1" + }, + { + "expression": { + "arguments": [ + { + "id": 326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4976:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 327, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "4982:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4986:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 325, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4966:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "4966:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5009:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 313, + "id": 332, + "nodeType": "Return", + "src": "5002:11:1" + } + ] + }, + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "4190:581:1", + "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4785:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "from", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4798:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4798:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "to", + "nameLocation": "4820:2:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4812:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "value", + "nameLocation": "4832:5:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4824:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4824:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:41:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 311, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4862:6:1" + }, + "scope": 651, + "src": "4776:244:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 380, + "nodeType": "Block", + "src": "5462:231:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5476:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5484:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5484:7:1", + "typeDescriptions": {} + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5476:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 358, + "nodeType": "IfStatement", + "src": "5472:86:1", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "5496:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5544:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5536:7:1", + "typeDescriptions": {} + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 350, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "5517:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "RevertStatement", + "src": "5510:37:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5571:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5577:7:1", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5577:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5571:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 373, + "nodeType": "IfStatement", + "src": "5567:86:1", + "trueBody": { + "id": 372, + "nodeType": "Block", + "src": "5589:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5631:7:1", + "typeDescriptions": {} + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5631:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 365, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5610:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5610:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "RevertStatement", + "src": "5603:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 375, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5670:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 376, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5676:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "5680:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 374, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "5662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5662:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "5662:24:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "5026:362:1", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5402:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "from", + "nameLocation": "5420:4:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5412:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5412:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "to", + "nameLocation": "5434:2:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5426:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5426:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "value", + "nameLocation": "5446:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5438:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5411:41:1" + }, + "returnParameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5462:0:1" + }, + "scope": 651, + "src": "5393:300:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "6083:1032:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6113:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6105:7:1", + "typeDescriptions": {} + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6097:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 428, + "nodeType": "Block", + "src": "6271:362:1", + "statements": [ + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6293:11:1", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6285:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 407, + "initialValue": { + "baseExpression": { + "id": 404, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 406, + "indexExpression": { + "id": 405, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6307:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6285:37:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 408, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6354:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6340:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 418, + "nodeType": "IfStatement", + "src": "6336:115:1", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "6361:90:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 412, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6411:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 413, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6430:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "6386:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6386:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "RevertStatement", + "src": "6379:57:1" + } + ] + } + }, + { + "id": 427, + "nodeType": "UncheckedBlock", + "src": "6464:159:1", + "statements": [ + { + "expression": { + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 419, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6581:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6571:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6589:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6589:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6571:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "6571:37:1" + } + ] + } + ] + }, + "id": 429, + "nodeType": "IfStatement", + "src": "6093:540:1", + "trueBody": { + "id": 401, + "nodeType": "Block", + "src": "6117:148:1", + "statements": [ + { + "expression": { + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 397, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6233:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6249:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6233:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "6233:21:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 430, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "6647:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6653:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:1", + "typeDescriptions": {} + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6647:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 449, + "nodeType": "Block", + "src": "6862:206:1", + "statements": [ + { + "id": 448, + "nodeType": "UncheckedBlock", + "src": "6876:182:1", + "statements": [ + { + "expression": { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 442, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "7021:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 444, + "indexExpression": { + "id": 443, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7021:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7038:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7021:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "7021:22:1" + } + ] + } + ] + }, + "id": 450, + "nodeType": "IfStatement", + "src": "6643:425:1", + "trueBody": { + "id": 441, + "nodeType": "Block", + "src": "6665:191:1", + "statements": [ + { + "id": 440, + "nodeType": "UncheckedBlock", + "src": "6679:167:1", + "statements": [ + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6810:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6826:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6810:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "6810:21:1" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 452, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "7092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 453, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7098:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7102:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 451, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "7083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7083:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "EmitStatement", + "src": "7078:30:1" + } + ] + }, + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "5699:304:1", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6017:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "from", + "nameLocation": "6033:4:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6025:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "to", + "nameLocation": "6047:2:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6039:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "value", + "nameLocation": "6059:5:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6024:41:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "6083:0:1" + }, + "scope": 651, + "src": "6008:1107:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 490, + "nodeType": "Block", + "src": "7514:152:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 466, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7547:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:1", + "typeDescriptions": {} + } + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7539:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7528:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 480, + "nodeType": "IfStatement", + "src": "7524:91:1", + "trueBody": { + "id": 479, + "nodeType": "Block", + "src": "7551:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7593:7:1", + "typeDescriptions": {} + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7593:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 472, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "7572:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7572:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "RevertStatement", + "src": "7565:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7640:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7632:7:1", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7632:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "7653:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 481, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "7624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7624:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "7624:35:1" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "7121:332:1", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7467:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "account", + "nameLocation": "7481:7:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7473:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "value", + "nameLocation": "7498:5:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7490:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7490:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7472:32:1" + }, + "returnParameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "7514:0:1" + }, + "scope": 651, + "src": "7458:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 523, + "nodeType": "Block", + "src": "8040:150:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 499, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8073:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8065:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8054:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 513, + "nodeType": "IfStatement", + "src": "8050:89:1", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "8077:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8125:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8117:7:1", + "typeDescriptions": {} + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8117:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 505, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "8098:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8098:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "RevertStatement", + "src": "8091:37:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 515, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8156:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8173:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8165:7:1", + "typeDescriptions": {} + } + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8165:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 520, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "8148:35:1" + } + ] + }, + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "7672:307:1", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "7993:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "account", + "nameLocation": "8007:7:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "7999:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7999:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "value", + "nameLocation": "8024:5:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "8016:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7998:32:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [], + "src": "8040:0:1" + }, + "scope": 651, + "src": "7984:206:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 541, + "nodeType": "Block", + "src": "8800:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "8819:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 536, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "8826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "8835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8842:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 534, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "8810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8810:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "8810:37:1" + } + ] + }, + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "8196:525:1", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 542, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8735:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8752:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8744:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8744:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8767:7:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8759:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "value", + "nameLocation": "8784:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8776:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8776:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8743:47:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "8800:0:1" + }, + "scope": 651, + "src": "8726:128:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 601, + "nodeType": "Block", + "src": "9799:334:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 554, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "9813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9830:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9822:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9822:7:1", + "typeDescriptions": {} + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9813:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 568, + "nodeType": "IfStatement", + "src": "9809:89:1", + "trueBody": { + "id": 567, + "nodeType": "Block", + "src": "9834:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9876:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9876:7:1", + "typeDescriptions": {} + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9876:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 560, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9855:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9855:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 566, + "nodeType": "RevertStatement", + "src": "9848:39:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 569, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "9911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:1", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9911:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "IfStatement", + "src": "9907:90:1", + "trueBody": { + "id": 582, + "nodeType": "Block", + "src": "9934:63:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:1", + "typeDescriptions": {} + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 575, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "9955:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9955:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 581, + "nodeType": "RevertStatement", + "src": "9948:38:1" + } + ] + } + }, + { + "expression": { + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 584, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "10006:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 587, + "indexExpression": { + "id": 585, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10018:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10006:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 588, + "indexExpression": { + "id": 586, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10006:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10036:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10006:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "10006:35:1" + }, + { + "condition": { + "id": 592, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "10055:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 600, + "nodeType": "IfStatement", + "src": "10051:76:1", + "trueBody": { + "id": 599, + "nodeType": "Block", + "src": "10066:61:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 594, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10094:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 595, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 593, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10085:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "EmitStatement", + "src": "10080:36:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "8860:836:1", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9710:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9727:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9719:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9719:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9742:7:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9734:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9734:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "value", + "nameLocation": "9759:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9751:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "9771:9:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9766:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 550, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9766:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9718:63:1" + }, + "returnParameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [], + "src": "9799:0:1" + }, + "scope": 651, + "src": "9701:432:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "10504:388:1", + "statements": [ + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10522:16:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "10514:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10558:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "10541:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10541:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10514:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 619, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10580:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10605:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10600:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10614:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10600:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10580:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 648, + "nodeType": "IfStatement", + "src": "10576:310:1", + "trueBody": { + "id": 647, + "nodeType": "Block", + "src": "10619:267:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10637:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10656:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10637:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 636, + "nodeType": "IfStatement", + "src": "10633:130:1", + "trueBody": { + "id": 635, + "nodeType": "Block", + "src": "10663:100:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 630, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 631, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10742:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "10688:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10688:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "RevertStatement", + "src": "10681:67:1" + } + ] + } + }, + { + "id": 646, + "nodeType": "UncheckedBlock", + "src": "10776:100:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 638, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 639, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10820:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 640, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10829:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10848:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10855:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 637, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "10804:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10804:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "10804:57:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 603, + "nodeType": "StructuredDocumentation", + "src": "10139:271:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10424:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10448:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10440:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10440:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10463:7:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10455:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10455:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "value", + "nameLocation": "10480:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10472:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10439:47:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [], + "src": "10504:0:1" + }, + "scope": 651, + "src": "10415:477:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 652, + "src": "1106:9788:1", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "105:10790:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ] + }, + "id": 730, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "132:71:2", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 729, + "linearizedBaseContracts": [ + 729 + ], + "name": "IERC20", + "nameLocation": "214:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "227:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 663, + "name": "Transfer", + "nameLocation": "396:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "405:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "427:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "447:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:2" + }, + "src": "390:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 664, + "nodeType": "StructuredDocumentation", + "src": "468:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 672, + "name": "Approval", + "nameLocation": "627:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 666, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "636:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "659:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "684:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:2" + }, + "src": "621:78:2" + }, + { + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "705:65:2", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:2" + }, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 678, + "src": "821:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:2" + }, + "scope": 729, + "src": "775:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "836:71:2", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 729, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "986:213:2", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1222:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1234:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1267:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:2" + }, + "scope": 729, + "src": "1204:69:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1279:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1567:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1582:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:2" + }, + "returnParameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1622:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:2" + }, + "scope": 729, + "src": "1548:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 707, + "nodeType": "StructuredDocumentation", + "src": "1637:667:2", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 716, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2326:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2343:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:2" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2376:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 713, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:2" + }, + "scope": 729, + "src": "2309:73:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 717, + "nodeType": "StructuredDocumentation", + "src": "2388:297:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2712:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2726:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2738:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:2" + }, + "returnParameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2771:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 725, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:2" + }, + "scope": 729, + "src": "2690:87:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 730, + "src": "204:2575:2", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "106:2674:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 731, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 733, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 756, + "sourceUnit": 730, + "src": "151:37:3", + "symbolAliases": [ + { + "foreign": { + "id": 732, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "159:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 735, + "name": "IERC20", + "nameLocations": [ + "306:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "306:6:3" + }, + "id": 736, + "nodeType": "InheritanceSpecifier", + "src": "306:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "190:87:3", + "text": " @dev Interface for the optional metadata functions from the ERC-20 standard." + }, + "fullyImplemented": false, + "id": 755, + "linearizedBaseContracts": [ + 755, + 729 + ], + "name": "IERC20Metadata", + "nameLocation": "288:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 737, + "nodeType": "StructuredDocumentation", + "src": "319:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "387:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "417:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 739, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "417:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "416:15:3" + }, + "scope": 755, + "src": "378:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 743, + "nodeType": "StructuredDocumentation", + "src": "438:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "508:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [], + "src": "514:2:3" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "540:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "539:15:3" + }, + "scope": 755, + "src": "499:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 749, + "nodeType": "StructuredDocumentation", + "src": "561:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "640:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "648:2:3" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "674:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "673:7:3" + }, + "scope": 755, + "src": "631:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 756, + "src": "278:405:3", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "125:559:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 785 + ] + }, + "id": 786, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "127:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 785, + "linearizedBaseContracts": [ + 785 + ], + "name": "Context", + "nameLocation": "642:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "718:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 763, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 762, + "id": 765, + "nodeType": "Return", + "src": "728:17:4" + } + ] + }, + "id": 767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:4" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "709:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:4" + }, + "scope": 785, + "src": "656:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "825:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 771, + "id": 774, + "nodeType": "Return", + "src": "835:15:4" + } + ] + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:4" + }, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "809:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 769, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:4" + }, + "scope": 785, + "src": "758:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 783, + "nodeType": "Block", + "src": "935:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 780, + "id": 782, + "nodeType": "Return", + "src": "945:8:4" + } + ] + }, + "id": 784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:4" + }, + "returnParameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 784, + "src": "926:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:4" + }, + "scope": 785, + "src": "863:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 786, + "src": "624:338:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:4" + }, + "id": 4 + }, + "contracts/core/Factory.sol": { + "ast": { + "absolutePath": "contracts/core/Factory.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "IPool": [ + 2166 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory": [ + 1019 + ], + "PoolFactory__IdenticalAddress": [ + 791 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ], + "PoolFactory__NotSetter": [ + 797 + ], + "PoolFactory__PoolExists": [ + 795 + ], + "PoolFactory__ZeroAddress": [ + 793 + ] + }, + "id": 1020, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 787, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 788, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2167, + "src": "60:32:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Pool.sol", + "file": "./Pool.sol", + "id": 789, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2104, + "src": "94:20:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "4bea99d9", + "id": 791, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "124:29:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [], + "src": "153:2:5" + }, + "src": "118:38:5" + }, + { + "errorSelector": "74b959e9", + "id": 793, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "164:24:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:5" + }, + "src": "158:33:5" + }, + { + "errorSelector": "423d7935", + "id": 795, + "name": "PoolFactory__PoolExists", + "nameLocation": "199:23:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:5" + }, + "src": "193:32:5" + }, + { + "errorSelector": "e9e17318", + "id": 797, + "name": "PoolFactory__NotSetter", + "nameLocation": "233:22:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "255:2:5" + }, + "src": "227:31:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoolFactory", + "contractDependencies": [ + 2103 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1019, + "linearizedBaseContracts": [ + 1019 + ], + "name": "PoolFactory", + "nameLocation": "271:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "feeReceiver", + "nameLocation": "306:11:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "290:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "290:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 803, + "mutability": "mutable", + "name": "feeReceiverSetter", + "nameLocation": "357:17:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "324:50:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 802, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "324:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "343:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 809, + "mutability": "mutable", + "name": "getPairs", + "nameLocation": "439:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "383:64:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 808, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "383:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 807, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "410:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "402:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "421:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "allPairs", + "nameLocation": "472:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "454:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 811, + "nodeType": "ArrayTypeName", + "src": "454:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b", + "id": 820, + "name": "PoolCreated", + "nameLocation": "495:11:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": false, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "515:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "507:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "507:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": false, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "531:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "523:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "547:11:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "539:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "506:53:5" + }, + "src": "489:71:5" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "608:63:5", + "statements": [ + { + "expression": { + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "619:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 822, + "src": "637:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "619:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "619:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 830, + "nodeType": "ExpressionStatement", + "src": "619:44:5" + } + ] + }, + "id": 832, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "588:18:5", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "580:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "579:28:5" + }, + "returnParameters": { + "id": 824, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:0:5" + }, + "scope": 1019, + "src": "568:103:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "795:978:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 841, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "810:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 842, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "820:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "810:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 847, + "nodeType": "IfStatement", + "src": "806:60:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 844, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "835:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "835:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 846, + "nodeType": "RevertStatement", + "src": "828:38:5" + } + }, + { + "assignments": [ + 849, + 851 + ], + "declarations": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "token0", + "nameLocation": "886:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "878:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "878:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "token1", + "nameLocation": "902:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "894:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "894:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 862, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "912:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 853, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "921:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "912:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 858, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "976:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 859, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "984:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 860, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "975:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "912:79:5", + "trueExpression": { + "components": [ + { + "id": 855, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "944:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "952:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "877:114:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1089:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:5", + "typeDescriptions": {} + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1089:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 872, + "nodeType": "IfStatement", + "src": "1085:59:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 869, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "1118:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1118:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "RevertStatement", + "src": "1111:33:5" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "id": 873, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1159:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 875, + "indexExpression": { + "id": 874, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 877, + "indexExpression": { + "id": 876, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1195:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1187:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1187:7:5", + "typeDescriptions": {} + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1187:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1159:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 886, + "nodeType": "IfStatement", + "src": "1155:89:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 883, + "name": "PoolFactory__PoolExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "1219:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "RevertStatement", + "src": "1212:32:5" + } + }, + { + "assignments": [ + 888 + ], + "declarations": [ + { + "constant": false, + "id": 888, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "1270:8:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1257:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1257:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 893, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 890, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1286:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + ], + "id": 889, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1281:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1281:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103", + "typeString": "type(contract Pool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1292:12:5", + "memberName": "creationCode", + "nodeType": "MemberAccess", + "src": "1281:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1257:47:5" + }, + { + "assignments": [ + 895 + ], + "declarations": [ + { + "constant": false, + "id": 895, + "mutability": "mutable", + "name": "salt", + "nameLocation": "1323:4:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1315:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1315:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 903, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 899, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1357:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 900, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 897, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1340:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1344:12:5", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1340:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1340:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 896, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1330:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1330:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1315:58:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1427:93:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1442:67:5", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1465:1:5", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1472:8:5" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1482:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1468:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "1468:17:5" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1493:8:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1487:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "1487:15:5" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "1504:4:5" + } + ], + "functionName": { + "name": "create2", + "nodeType": "YulIdentifier", + "src": "1457:7:5" + }, + "nodeType": "YulFunctionCall", + "src": "1457:52:5" + }, + "variableNames": [ + { + "name": "poolAddress", + "nodeType": "YulIdentifier", + "src": "1442:11:5" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1472:8:5", + "valueSize": 1 + }, + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1493:8:5", + "valueSize": 1 + }, + { + "declaration": 839, + "isOffset": false, + "isSlot": false, + "src": "1442:11:5", + "valueSize": 1 + }, + { + "declaration": 895, + "isOffset": false, + "isSlot": false, + "src": "1504:4:5", + "valueSize": 1 + } + ], + "id": 904, + "nodeType": "InlineAssembly", + "src": "1418:102:5" + }, + { + "expression": { + "arguments": [ + { + "id": 909, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1555:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 910, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1563:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 906, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1537:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 905, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1532:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1550:4:5", + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 1683, + "src": "1532:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 912, + "nodeType": "ExpressionStatement", + "src": "1532:38:5" + }, + { + "expression": { + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 913, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1583:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 917, + "indexExpression": { + "id": 915, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1600:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1583:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 918, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1610:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1583:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 920, + "nodeType": "ExpressionStatement", + "src": "1583:38:5" + }, + { + "expression": { + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 921, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1632:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 924, + "indexExpression": { + "id": 922, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1641:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1632:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 925, + "indexExpression": { + "id": 923, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1649:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1632:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 926, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1659:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1632:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "1632:38:5" + }, + { + "expression": { + "arguments": [ + { + "id": 932, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1695:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 929, + "name": "allPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 812, + "src": "1681:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1690:4:5", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "1681:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1681:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1681:26:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 936, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1737:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 937, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1745:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 938, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1753:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 935, + "name": "PoolCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "1725:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1725:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 940, + "nodeType": "EmitStatement", + "src": "1720:45:5" + } + ] + }, + "functionSelector": "e3433615", + "id": 942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "688:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "717:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "709:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "742:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "734:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "734:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "698:57:5" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "782:11:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "774:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "773:21:5" + }, + "scope": 1019, + "src": "679:1094:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "1895:52:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 951, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1913:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 953, + "indexExpression": { + "id": 952, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "1922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 955, + "indexExpression": { + "id": 954, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1931:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 950, + "id": 956, + "nodeType": "Return", + "src": "1906:33:5" + } + ] + }, + "functionSelector": "4a70f02e", + "id": 958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "1790:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "1822:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1814:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1814:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "1848:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1840:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1840:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1803:59:5" + }, + "returnParameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1886:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1885:9:5" + }, + "scope": 1019, + "src": "1781:166:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 970, + "nodeType": "Block", + "src": "2010:73:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 963, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2021:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2021:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "2021:15:5" + }, + { + "expression": { + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 966, + "name": "feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "2049:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 967, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "2063:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2049:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 969, + "nodeType": "ExpressionStatement", + "src": "2049:26:5" + } + ] + }, + "functionSelector": "efdcd974", + "id": 971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeReceiver", + "nameLocation": "1964:14:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "1987:12:5", + "nodeType": "VariableDeclaration", + "scope": 971, + "src": "1979:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1979:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1978:22:5" + }, + "returnParameters": { + "id": 962, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:0:5" + }, + "scope": 1019, + "src": "1955:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 985, + "nodeType": "Block", + "src": "2160:91:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 976, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2171:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2171:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "2171:15:5" + }, + { + "expression": { + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 979, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2199:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 981, + "indexExpression": { + "id": 980, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "2217:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2199:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2239:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2199:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "2199:44:5" + } + ] + }, + "functionSelector": "5ac40ab3", + "id": 986, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addToFeeReceiverSetter", + "nameLocation": "2100:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2131:18:5", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "2123:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:28:5" + }, + "returnParameters": { + "id": 975, + "nodeType": "ParameterList", + "parameters": [], + "src": "2160:0:5" + }, + "scope": 1019, + "src": "2091:160:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "2333:92:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 991, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2344:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 993, + "nodeType": "ExpressionStatement", + "src": "2344:15:5" + }, + { + "expression": { + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 994, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2372:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 996, + "indexExpression": { + "id": 995, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 988, + "src": "2390:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2372:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2412:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2372:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "ExpressionStatement", + "src": "2372:45:5" + } + ] + }, + "functionSelector": "48397023", + "id": 1001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeFromFeeReceiverSetter", + "nameLocation": "2268:27:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 988, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2304:18:5", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "2296:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2296:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2295:28:5" + }, + "returnParameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2333:0:5" + }, + "scope": 1019, + "src": "2259:166:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "2472:121:5", + "statements": [ + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "ifSetter", + "nameLocation": "2488:8:5", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "2483:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1004, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2483:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1010, + "initialValue": { + "baseExpression": { + "id": 1006, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2499:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1009, + "indexExpression": { + "expression": { + "id": 1007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2517:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2521:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2517:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2499:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2483:45:5" + }, + { + "condition": { + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2543:9:5", + "subExpression": { + "id": 1011, + "name": "ifSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2544:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1016, + "nodeType": "IfStatement", + "src": "2539:46:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1013, + "name": "PoolFactory__NotSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "2561:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2561:24:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1015, + "nodeType": "RevertStatement", + "src": "2554:31:5" + } + } + ] + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkIfSetter", + "nameLocation": "2442:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1002, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:5" + }, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2472:0:5" + }, + "scope": 1019, + "src": "2433:160:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1020, + "src": "262:2334:5", + "usedErrors": [ + 791, + 793, + 795, + 797 + ], + "usedEvents": [ + 820 + ] + } + ], + "src": "33:2563:5" + }, + "id": 5 + }, + "contracts/core/LiquidityProvider.sol": { + "ast": { + "absolutePath": "contracts/core/LiquidityProvider.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "IERC20": [ + 729 + ], + "IFactory": [ + 2124 + ], + "IPool": [ + 2166 + ], + "IWEDU": [ + 2186 + ], + "LiquidityProvider": [ + 1537 + ], + "LiquidityProvider__EDUTransferFailed": [ + 1032 + ], + "LiquidityProvider__InsufficientAmount": [ + 1028 + ], + "LiquidityProvider__InsufficientOutputAmount": [ + 1030 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 1538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1021, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1022, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 730, + "src": "120:56:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "file": "./interfaces/IFactory.sol", + "id": 1023, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2125, + "src": "178:35:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 1024, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2167, + "src": "215:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "file": "./interfaces/IWedu.sol", + "id": 1025, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2187, + "src": "249:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/libraries/Library.sol", + "file": "./libraries/Library.sol", + "id": 1026, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2296, + "src": "283:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "d0368649", + "id": 1028, + "name": "LiquidityProvider__InsufficientAmount", + "nameLocation": "326:37:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [], + "src": "363:2:6" + }, + "src": "320:46:6" + }, + { + "errorSelector": "dec0fbbe", + "id": 1030, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nameLocation": "374:43:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:6" + }, + "src": "368:52:6" + }, + { + "errorSelector": "0221f34c", + "id": 1032, + "name": "LiquidityProvider__EDUTransferFailed", + "nameLocation": "428:36:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1031, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:6" + }, + "src": "422:45:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LiquidityProvider", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1537, + "linearizedBaseContracts": [ + 1537 + ], + "name": "LiquidityProvider", + "nameLocation": "480:17:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1034, + "mutability": "immutable", + "name": "factoryAddress", + "nameLocation": "531:14:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "505:40:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1036, + "mutability": "immutable", + "name": "WEDU", + "nameLocation": "578:4:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "552:30:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1051, + "nodeType": "Block", + "src": "643:74:6", + "statements": [ + { + "expression": { + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1043, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "654:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1044, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1038, + "src": "671:15:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:32:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "654:32:6" + }, + { + "expression": { + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1047, + "name": "WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1036, + "src": "697:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1048, + "name": "_WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "704:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "697:12:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "697:12:6" + } + ] + }, + "id": 1052, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1038, + "mutability": "mutable", + "name": "_factoryAddress", + "nameLocation": "611:15:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "603:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "mutability": "mutable", + "name": "_WEDU", + "nameLocation": "636:5:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "628:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "602:40:6" + }, + "returnParameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:6" + }, + "scope": 1537, + "src": "591:126:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1184, + "nodeType": "Block", + "src": "995:1414:6", + "statements": [ + { + "assignments": [ + 1072 + ], + "declarations": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "pair", + "nameLocation": "1014:4:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1006:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "arguments": [ + { + "id": 1077, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1074, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1021:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1046:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1021:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1006:71:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1108:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1100:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1100:7:6", + "typeDescriptions": {} + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1100:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1092:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "1088:97:6", + "trueBody": { + "expression": { + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1087, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1125:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1092, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1168:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1093, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1177:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1089, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1141:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1088, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1132:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1157:10:6", + "memberName": "createPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2123, + "src": "1132:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:60:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1125:60:6" + } + }, + { + "assignments": [ + 1099, + 1101 + ], + "declarations": [ + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "1207:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1199:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1199:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1101, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "1225:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1217:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1107, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1103, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1102, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "1237:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1249:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "1237:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1198:69:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1108, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1284:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1111, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1301:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1313:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1301:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:30:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1182, + "nodeType": "Block", + "src": "1416:986:6", + "statements": [ + { + "assignments": [ + 1125 + ], + "declarations": [ + { + "constant": false, + "id": 1125, + "mutability": "mutable", + "name": "optimalAmountOfTokenB", + "nameLocation": "1439:21:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1431:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1431:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1131, + "initialValue": { + "arguments": [ + { + "id": 1127, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1487:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1128, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1527:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1129, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1126, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1463:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1463:114:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:146:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1132, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1596:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1133, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1621:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1596:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1180, + "nodeType": "Block", + "src": "1938:453:6", + "statements": [ + { + "assignments": [ + 1152 + ], + "declarations": [ + { + "constant": false, + "id": 1152, + "mutability": "mutable", + "name": "amountAOptimal", + "nameLocation": "1965:14:6", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "1957:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1154, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2010:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1155, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "2054:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1156, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "2085:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1153, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1982:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:130:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1957:155:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2138:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1161, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "2156:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2138:39:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1159, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2131:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2131:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "ExpressionStatement", + "src": "2131:47:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1165, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2201:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1166, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "2218:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2201:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1171, + "nodeType": "IfStatement", + "src": "2197:99:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1168, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "2257:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2257:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1170, + "nodeType": "RevertStatement", + "src": "2250:46:6" + } + }, + { + "expression": { + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1172, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "2316:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1173, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "2325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1174, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2315:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1175, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2337:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1176, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:39:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2315:60:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "2315:60:6" + } + ] + }, + "id": 1181, + "nodeType": "IfStatement", + "src": "1592:799:6", + "trueBody": { + "id": 1150, + "nodeType": "Block", + "src": "1644:288:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1135, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1667:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1136, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1691:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1141, + "nodeType": "IfStatement", + "src": "1663:106:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1138, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "1730:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1730:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1140, + "nodeType": "RevertStatement", + "src": "1723:46:6" + } + }, + { + "expression": { + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1142, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1789:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1143, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1144, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1788:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1145, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1832:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1146, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1147, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1809:107:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1788:128:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1149, + "nodeType": "ExpressionStatement", + "src": "1788:128:6" + } + ] + } + } + ] + }, + "id": 1183, + "nodeType": "IfStatement", + "src": "1280:1122:6", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "1316:94:6", + "statements": [ + { + "expression": { + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1115, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1332:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1116, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1117, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1331:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1118, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1119, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1376:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1120, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1352:46:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1331:67:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "1331:67:6" + } + ] + } + } + ] + }, + "id": 1185, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLiquidity", + "nameLocation": "734:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "766:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "758:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1053, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "758:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1056, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "792:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "784:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1058, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "818:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "810:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "858:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "850:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "850:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "898:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "890:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "926:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "918:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "918:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "747:195:6" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "969:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "961:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "986:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "978:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "960:34:6" + }, + "scope": 1537, + "src": "725:1684:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "2703:487:6", + "statements": [ + { + "expression": { + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1206, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "2715:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1207, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "2724:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1208, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2714:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1210, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2763:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1211, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2784:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1212, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "2805:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1213, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2841:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1214, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1195, + "src": "2877:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1215, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2901:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1209, + "name": "_addLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "2735:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:186:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2714:207:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1218, + "nodeType": "ExpressionStatement", + "src": "2714:207:6" + }, + { + "assignments": [ + 1220 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "pair", + "nameLocation": "2940:4:6", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "2932:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2932:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2994:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1222, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2956:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1221, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "2947:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2972:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "2947:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2932:69:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1233, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3040:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3044:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3040:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3052:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1236, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "3058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1230, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "3019:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3027:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3012:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1238, + "nodeType": "ExpressionStatement", + "src": "3012:54:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3105:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3105:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1245, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3117:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1246, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "3123:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1240, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "3084:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1239, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3077:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3092:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3077:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "3077:54:6" + }, + { + "expression": { + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1249, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "3142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1254, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3171:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3171:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1251, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3160:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1250, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3154:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3166:4:6", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2140, + "src": "3154:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3142:40:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1258, + "nodeType": "ExpressionStatement", + "src": "3142:40:6" + } + ] + }, + "functionSelector": "3351733f", + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "2426:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1187, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "2457:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2449:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2449:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1189, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "2482:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2474:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "2507:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2499:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "2547:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2539:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "2587:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2579:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "2615:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2607:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2438:193:6" + }, + "returnParameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2658:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2650:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2650:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2675:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2667:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2667:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2692:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2684:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2684:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2649:53:6" + }, + "scope": 1537, + "src": "2417:773:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1349, + "nodeType": "Block", + "src": "4116:531:6", + "statements": [ + { + "body": { + "id": 1347, + "nodeType": "Block", + "src": "4166:474:6", + "statements": [ + { + "assignments": [ + 1286, + 1288 + ], + "declarations": [ + { + "constant": false, + "id": 1286, + "mutability": "mutable", + "name": "input", + "nameLocation": "4190:5:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4182:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4182:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "output", + "nameLocation": "4205:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4197:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4197:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1298, + "initialValue": { + "components": [ + { + "baseExpression": { + "id": 1289, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4216:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1291, + "indexExpression": { + "id": 1290, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4221:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4216:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1292, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4225:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1296, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4230:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4230:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4215:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4181:56:6" + }, + { + "assignments": [ + 1300, + null + ], + "declarations": [ + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "token0", + "nameLocation": "4261:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4253:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1306, + "initialValue": { + "arguments": [ + { + "id": 1303, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1304, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "4303:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1301, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "4273:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4285:10:6", + "memberName": "sortTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 2236, + "src": "4273:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", + "typeString": "function (address,address) pure returns (address,address)" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4273:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4252:58:6" + }, + { + "assignments": [ + 1308 + ], + "declarations": [ + { + "constant": false, + "id": 1308, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "4333:9:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4325:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1314, + "initialValue": { + "baseExpression": { + "id": 1309, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4345:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1313, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4353:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4357:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4345:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4325:34:6" + }, + { + "assignments": [ + 1316, + 1318 + ], + "declarations": [ + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "4383:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4375:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "4403:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4395:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1335, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1319, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4417:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1320, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "4426:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4417:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4504:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4496:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:6", + "typeDescriptions": {} + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4496:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1332, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4508:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1333, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4495:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 1334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4417:101:6", + "trueExpression": { + "components": [ + { + "id": 1322, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4453:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4472:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4464:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4464:7:6", + "typeDescriptions": {} + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4464:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1327, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4452:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4374:144:6" + }, + { + "documentation": "TODO: In case of multiple hops ", + "expression": { + "arguments": [ + { + "id": 1340, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4601:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 1341, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1343, + "indexExpression": { + "id": 1342, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4620:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4612:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1344, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1270, + "src": "4624:3:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1337, + "name": "_pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1268, + "src": "4589:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1336, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "4583:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4596:4:6", + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 2165, + "src": "4583:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address) external" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1346, + "nodeType": "ExpressionStatement", + "src": "4583:45:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1276, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4140:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1277, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4144:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4149:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4158:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4144:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4140:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1348, + "initializationExpression": { + "assignments": [ + 1274 + ], + "declarations": [ + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "i", + "nameLocation": "4137:1:6", + "nodeType": "VariableDeclaration", + "scope": 1348, + "src": "4132:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1273, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4132:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1275, + "nodeType": "VariableDeclarationStatement", + "src": "4132:6:6" + }, + "loopExpression": { + "expression": { + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4161:3:6", + "subExpression": { + "id": 1282, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4161:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "4161:3:6" + }, + "nodeType": "ForStatement", + "src": "4127:513:6" + } + ] + }, + "id": 1350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "3981:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4014:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "3997:24:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1262, + "nodeType": "ArrayTypeName", + "src": "3997:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1266, + "mutability": "mutable", + "name": "path", + "nameLocation": "4049:4:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4032:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4032:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1265, + "nodeType": "ArrayTypeName", + "src": "4032:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1268, + "mutability": "mutable", + "name": "_pair", + "nameLocation": "4072:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4064:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4064:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "_to", + "nameLocation": "4096:3:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4088:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3986:120:6" + }, + "returnParameters": { + "id": 1272, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:6" + }, + "scope": 1537, + "src": "3972:675:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1420, + "nodeType": "Block", + "src": "4899:392:6", + "statements": [ + { + "assignments": [ + 1365 + ], + "declarations": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "pair", + "nameLocation": "4918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "4910:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1377, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1370, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1372, + "indexExpression": { + "hexValue": "30", + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4964:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1373, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4973:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1375, + "indexExpression": { + "hexValue": "31", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4978:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4973:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1367, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "4934:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1366, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "4925:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4950:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "4925:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4910:71:6" + }, + { + "expression": { + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1378, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "4994:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1380, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1381, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "5024:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1382, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5034:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 1379, + "name": "getAmountsOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "5004:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5004:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4994:45:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1385, + "nodeType": "ExpressionStatement", + "src": "4994:45:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1386, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5054:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1391, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1387, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5062:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5070:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5062:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5062:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5054:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1392, + "name": "amountOutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "5084:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1397, + "nodeType": "IfStatement", + "src": "5050:113:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1394, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "5118:43:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5118:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1396, + "nodeType": "RevertStatement", + "src": "5111:52:6" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5205:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5209:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5205:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5217:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1407, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5223:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1409, + "indexExpression": { + "hexValue": "30", + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5223:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1399, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5183:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1401, + "indexExpression": { + "hexValue": "30", + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5183:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1398, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "5176:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5192:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "5176:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "5176:58:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1413, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5251:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1414, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5260:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 1415, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5266:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5272:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5276:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5272:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "5245:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[] memory,address[] memory,address,address)" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "5245:38:6" + } + ] + }, + "functionSelector": "86818f26", + "id": 1421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "4664:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4704:8:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4699:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1351, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4699:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1354, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4728:12:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4723:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4723:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "path", + "nameLocation": "4770:4:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4751:23:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4751:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1356, + "nodeType": "ArrayTypeName", + "src": "4751:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4688:93:6" + }, + "returnParameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4875:7:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4861:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4861:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1361, + "nodeType": "ArrayTypeName", + "src": "4861:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4817:76:6" + }, + "scope": 1537, + "src": "4655:636:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1459, + "nodeType": "Block", + "src": "5429:265:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1433, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5448:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5448:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5461:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + }, + "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + } + ], + "id": 1432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5440:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5440:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "5440:65:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1440, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5538:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5549:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5538:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1443, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5565:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5554:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5538:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5581:42:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 1439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5516:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5516:118:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1449, + "nodeType": "ExpressionStatement", + "src": "5516:118:6" + }, + { + "expression": { + "id": 1457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1450, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1451, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1452, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5666:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5656:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5655:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1455, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5678:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5655:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5645:41:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1458, + "nodeType": "ExpressionStatement", + "src": "5645:41:6" + } + ] + }, + "id": 1460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "5308:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1423, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "5329:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5324:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5324:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1425, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "5352:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5347:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1424, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1427, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "5376:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5371:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1426, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5371:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5313:78:6" + }, + "returnParameters": { + "id": 1431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1430, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "5420:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5415:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:14:6" + }, + "scope": 1537, + "src": "5299:395:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1535, + "nodeType": "Block", + "src": "5923:453:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1474, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "5942:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5947:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5942:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "32", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5942:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "id": 1478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5960:32:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + }, + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + } + ], + "id": 1473, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:59:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "ExpressionStatement", + "src": "5934:59:6" + }, + { + "expression": { + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1481, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6004:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1485, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6030:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6025:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6014:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1483, + "nodeType": "ArrayTypeName", + "src": "6018:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6014:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "6004:33:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1489, + "nodeType": "ExpressionStatement", + "src": "6004:33:6" + }, + { + "expression": { + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1490, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1492, + "indexExpression": { + "hexValue": "30", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6048:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1493, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "6061:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6048:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "6048:21:6" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6119:250:6", + "statements": [ + { + "assignments": [ + 1509, + 1511 + ], + "declarations": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "6140:9:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6135:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6135:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1511, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "6156:10:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6151:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1510, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6151:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1513, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "6176:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1512, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "6170:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6182:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "6170:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6134:66:6" + }, + { + "expression": { + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1518, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6215:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1522, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6223:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6227:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6223:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6215:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 1525, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6275:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1527, + "indexExpression": { + "id": 1526, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6283:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6275:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1529, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1511, + "src": "6332:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1523, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "6232:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6244:12:6", + "memberName": "getAmountOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "6232:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6232:125:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6215:142:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6215:142:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6093:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1500, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6097:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6102:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6097:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6111:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6097:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6093:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1534, + "initializationExpression": { + "assignments": [ + 1497 + ], + "declarations": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "i", + "nameLocation": "6090:1:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6085:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6085:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1498, + "nodeType": "VariableDeclarationStatement", + "src": "6085:6:6" + }, + "loopExpression": { + "expression": { + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6114:3:6", + "subExpression": { + "id": 1505, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6114:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "6114:3:6" + }, + "nodeType": "ForStatement", + "src": "6080:289:6" + } + ] + }, + "functionSelector": "bb7b9c76", + "id": 1536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "5779:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "pair", + "nameLocation": "5811:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5803:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5803:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "5831:8:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5826:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1467, + "mutability": "mutable", + "name": "path", + "nameLocation": "5867:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5850:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5850:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1466, + "nodeType": "ArrayTypeName", + "src": "5850:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5792:86:6" + }, + "returnParameters": { + "id": 1472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1471, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "5914:7:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5900:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5900:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1470, + "nodeType": "ArrayTypeName", + "src": "5900:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5899:23:6" + }, + "scope": 1537, + "src": "5770:606:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1538, + "src": "471:5908:6", + "usedErrors": [ + 1028, + 1030, + 2190, + 2192 + ], + "usedEvents": [] + } + ], + "src": "33:6346:6" + }, + "id": 6 + }, + "contracts/core/Math.sol": { + "ast": { + "absolutePath": "contracts/core/Math.sol", + "exportedSymbols": { + "Math": [ + 1613 + ] + }, + "id": 1614, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1539, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613 + ], + "name": "Math", + "nameLocation": "123:4:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1557, + "nodeType": "Block", + "src": "195:36:7", + "statements": [ + { + "expression": { + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1548, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "206:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1549, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "210:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1550, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "214:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "210:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1553, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "222:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "210:13:7", + "trueExpression": { + "id": 1552, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "218:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "206:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1556, + "nodeType": "ExpressionStatement", + "src": "206:17:7" + } + ] + }, + "id": 1558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "144:3:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1541, + "mutability": "mutable", + "name": "x", + "nameLocation": "153:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "148:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "148:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1543, + "mutability": "mutable", + "name": "y", + "nameLocation": "161:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "156:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "156:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "147:16:7" + }, + "returnParameters": { + "id": 1547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "z", + "nameLocation": "192:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "187:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "187:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "186:8:7" + }, + "scope": 1613, + "src": "135:96:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "402:250:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1565, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "417:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "33", + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "421:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "417:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1601, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "605:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "610:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "605:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1609, + "nodeType": "IfStatement", + "src": "601:44:7", + "trueBody": { + "id": 1608, + "nodeType": "Block", + "src": "613:32:7", + "statements": [ + { + "expression": { + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1604, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "628:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "632:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "628:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "628:5:7" + } + ] + } + }, + "id": 1610, + "nodeType": "IfStatement", + "src": "413:232:7", + "trueBody": { + "id": 1600, + "nodeType": "Block", + "src": "424:171:7", + "statements": [ + { + "expression": { + "id": 1570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1568, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "439:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1569, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "443:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "439:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1571, + "nodeType": "ExpressionStatement", + "src": "439:5:7" + }, + { + "assignments": [ + 1573 + ], + "declarations": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "x", + "nameLocation": "464:1:7", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "459:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "459:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1579, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1574, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "468:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "468:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "468:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "459:18:7" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "506:78:7", + "statements": [ + { + "expression": { + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1583, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "525:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1584, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "529:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "525:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "525:5:7" + }, + { + "expression": { + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1587, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "549:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1588, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "554:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1589, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "558:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "562:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1593, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "553:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "553:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1597, + "nodeType": "ExpressionStatement", + "src": "549:19:7" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1580, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "499:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1581, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "503:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "499:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1599, + "nodeType": "WhileStatement", + "src": "492:92:7" + } + ] + } + } + ] + }, + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "358:4:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "y", + "nameLocation": "368:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "363:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "363:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "362:8:7" + }, + "returnParameters": { + "id": 1564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1563, + "mutability": "mutable", + "name": "z", + "nameLocation": "399:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "394:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "394:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "393:8:7" + }, + "scope": 1613, + "src": "349:303:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1614, + "src": "115:540:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:622:7" + }, + "id": 7 + }, + "contracts/core/Pool.sol": { + "ast": { + "absolutePath": "contracts/core/Pool.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ] + }, + "id": 2104, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1616, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 652, + "src": "60:55:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1617, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 730, + "src": "117:56:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Math.sol", + "file": "./Math.sol", + "id": 1618, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 1614, + "src": "175:20:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "0c18a1fc", + "id": 1620, + "name": "PoolFactory__NotOwner", + "nameLocation": "205:21:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:2:8" + }, + "src": "199:30:8" + }, + { + "errorSelector": "24217e51", + "id": 1622, + "name": "PoolFactory__InsufficientLiquidity", + "nameLocation": "237:34:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [], + "src": "271:2:8" + }, + "src": "231:43:8" + }, + { + "errorSelector": "5d125c46", + "id": 1624, + "name": "PoolFactory__InsufficientFunds", + "nameLocation": "282:30:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "src": "276:39:8" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1625, + "name": "ERC20", + "nameLocations": [ + "336:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "336:5:8" + }, + "id": 1626, + "nodeType": "InheritanceSpecifier", + "src": "336:5:8" + } + ], + "canonicalName": "Pool", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2103, + "linearizedBaseContracts": [ + 2103, + 651, + 41, + 755, + 729, + 785 + ], + "name": "Pool", + "nameLocation": "328:4:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1629, + "libraryName": { + "id": 1627, + "name": "Math", + "nameLocations": [ + "355:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1613, + "src": "355:4:8" + }, + "nodeType": "UsingForDirective", + "src": "349:23:8", + "typeName": { + "id": 1628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1631, + "mutability": "immutable", + "name": "factory", + "nameLocation": "406:7:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "380:33:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "380:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "436:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "420:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "465:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "449:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 1640, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "504:17:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "480:51:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "480:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "524:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "33", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "556:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "540:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "540:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1644, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "587:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "571:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "totalLpShares", + "nameLocation": "620:13:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "604:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1658, + "nodeType": "Block", + "src": "687:39:8", + "statements": [ + { + "expression": { + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1653, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "698:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1654, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "708:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "712:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "708:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "698:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1657, + "nodeType": "ExpressionStatement", + "src": "698:20:8" + } + ] + }, + "id": 1659, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4c6971756964697479546f6b656e73", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "662:17:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0", + "typeString": "literal_string \"LiquidityTokens\"" + }, + "value": "LiquidityTokens" + }, + { + "hexValue": "4c50", + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3", + "typeString": "literal_string \"LP\"" + }, + "value": "LP" + } + ], + "id": 1651, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1648, + "name": "ERC20", + "nameLocations": [ + "656:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "656:5:8" + }, + "nodeType": "ModifierInvocation", + "src": "656:30:8" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "653:2:8" + }, + "returnParameters": { + "id": 1652, + "nodeType": "ParameterList", + "parameters": [], + "src": "687:0:8" + }, + "scope": 2103, + "src": "642:84:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1682, + "nodeType": "Block", + "src": "791:132:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1666, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "806:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1667, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "817:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "821:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "817:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "806:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "802:57:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1670, + "name": "PoolFactory__NotOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "836:21:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "836:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1672, + "nodeType": "RevertStatement", + "src": "829:30:8" + } + }, + { + "expression": { + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1674, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "872:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1675, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "881:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "872:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1677, + "nodeType": "ExpressionStatement", + "src": "872:16:8" + }, + { + "expression": { + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1678, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1679, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "908:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "899:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1681, + "nodeType": "ExpressionStatement", + "src": "899:16:8" + } + ] + }, + "functionSelector": "f09a4016", + "id": 1683, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "743:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "756:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "748:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "773:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "765:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "747:34:8" + }, + "returnParameters": { + "id": 1665, + "nodeType": "ParameterList", + "parameters": [], + "src": "791:0:8" + }, + "scope": 2103, + "src": "734:189:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "994:70:8", + "statements": [ + { + "expression": { + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1690, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "1005:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1691, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1016:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1005:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "1005:20:8" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1694, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "1036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "1047:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1036:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1036:20:8" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "940:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "956:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "948:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "948:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "967:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "967:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "947:38:8" + }, + "returnParameters": { + "id": 1689, + "nodeType": "ParameterList", + "parameters": [], + "src": "994:0:8" + }, + "scope": 2103, + "src": "931:133:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "1136:1104:8", + "statements": [ + { + "assignments": [ + 1707, + 1709 + ], + "declarations": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_reserveA", + "nameLocation": "1156:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1148:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1148:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1709, + "mutability": "mutable", + "name": "_reserveB", + "nameLocation": "1175:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1167:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1712, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1710, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "1188:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1188:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1147:59:8" + }, + { + "assignments": [ + 1714 + ], + "declarations": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "1225:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1217:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1721, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1270:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1262:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1262:7:8", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1262:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1716, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "1244:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1715, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1237:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1252:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1237:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1217:59:8" + }, + { + "assignments": [ + 1726 + ], + "declarations": [ + { + "constant": false, + "id": 1726, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "1295:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1287:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1736, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1733, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1340:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:8", + "typeDescriptions": {} + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1332:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1728, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "1314:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1727, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1307:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1322:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1307:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1287:59:8" + }, + { + "assignments": [ + 1738 + ], + "declarations": [ + { + "constant": false, + "id": 1738, + "mutability": "mutable", + "name": "depositOfTokenA", + "nameLocation": "1365:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1357:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1742, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1739, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "1383:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1740, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1395:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1383:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1357:47:8" + }, + { + "assignments": [ + 1744 + ], + "declarations": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "depositOfTokenB", + "nameLocation": "1423:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1415:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1415:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1748, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1745, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "1441:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1746, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1453:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1441:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1415:47:8" + }, + { + "assignments": [ + 1750 + ], + "declarations": [ + { + "constant": false, + "id": 1750, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1483:12:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1475:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1475:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1753, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1751, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "1498:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1498:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:36:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1754, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1526:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1542:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1526:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1796, + "nodeType": "Block", + "src": "1828:188:8", + "statements": [ + { + "expression": { + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1778, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1843:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1781, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1883:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1782, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1883:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1882:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1785, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1917:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1882:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1787, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1946:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1788, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1964:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1946:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1790, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1945:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1791, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1980:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1945:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1779, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1855:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1860:3:8", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 1558, + "src": "1855:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:149:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1843:161:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1795, + "nodeType": "ExpressionStatement", + "src": "1843:161:8" + } + ] + }, + "id": 1797, + "nodeType": "IfStatement", + "src": "1522:494:8", + "trueBody": { + "id": 1777, + "nodeType": "Block", + "src": "1545:277:8", + "statements": [ + { + "expression": { + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1757, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1560:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1760, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1599:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1761, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1617:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1599:33:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1758, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1589:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1594:4:8", + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1612, + "src": "1589:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "id": 1764, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1654:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1653:19:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1589:83:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1560:112:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "1560:112:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "31", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1693:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1693:7:8", + "typeDescriptions": {} + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1693:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1774, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1705:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1769, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "1687:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1687:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1776, + "nodeType": "ExpressionStatement", + "src": "1687:36:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1798, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2030:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2043:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2030:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1804, + "nodeType": "IfStatement", + "src": "2026:63:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1801, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "2053:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2053:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1803, + "nodeType": "RevertStatement", + "src": "2046:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "id": 1806, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "2106:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1807, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2111:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1805, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "2100:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2100:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1809, + "nodeType": "ExpressionStatement", + "src": "2100:21:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1811, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "2140:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1812, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "2151:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "2132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1814, + "nodeType": "ExpressionStatement", + "src": "2132:29:8" + } + ] + }, + "functionSelector": "6a627842", + "id": 1816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "1081:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1094:3:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1086:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1086:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1085:13:8" + }, + "returnParameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1125:9:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1117:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1116:19:8" + }, + "scope": 2103, + "src": "1072:1168:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1957, + "nodeType": "Block", + "src": "2368:1169:8", + "statements": [ + { + "assignments": [ + 1826, + 1828 + ], + "declarations": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "2388:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2380:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2380:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1828, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "2407:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2399:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1831, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1829, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "2420:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2379:59:8" + }, + { + "assignments": [ + 1833 + ], + "declarations": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "2472:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2464:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2464:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "id": 1834, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "2482:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2464:24:8" + }, + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "2522:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2514:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1839, + "initialValue": { + "id": 1838, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "2532:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2514:24:8" + }, + { + "assignments": [ + 1841 + ], + "declarations": [ + { + "constant": false, + "id": 1841, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "2569:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2564:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1851, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2614:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2606:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2606:7:8", + "typeDescriptions": {} + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1843, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "2587:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1842, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2580:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2596:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2580:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:56:8" + }, + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "2636:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2631:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2631:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1863, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1860, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2673:7:8", + "typeDescriptions": {} + } + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2673:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1855, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "2654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1854, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2647:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2663:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2647:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2631:56:8" + }, + { + "assignments": [ + 1865 + ], + "declarations": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2703:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2698:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2698:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1869, + "initialValue": { + "arguments": [ + { + "id": 1867, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "2725:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1866, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2715:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2715:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:30:8" + }, + { + "assignments": [ + 1871 + ], + "declarations": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "2749:12:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2741:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2741:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1874, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1872, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "2764:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2764:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2741:36:8" + }, + { + "expression": { + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1875, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "2866:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1876, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2877:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1877, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "2889:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2877:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2876:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1880, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "2901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2876:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1883, + "nodeType": "ExpressionStatement", + "src": "2866:47:8" + }, + { + "expression": { + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1884, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "2972:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1885, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2983:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1886, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2995:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2983:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1888, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2982:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1889, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3007:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2982:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2972:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1892, + "nodeType": "ExpressionStatement", + "src": "2972:47:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1893, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3082:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3093:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3082:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1896, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3098:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3109:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3098:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3082:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1903, + "nodeType": "IfStatement", + "src": "3078:90:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1900, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3132:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3132:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1902, + "nodeType": "RevertStatement", + "src": "3125:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1907, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3193:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3185:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3185:7:8", + "typeDescriptions": {} + } + }, + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3185:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1909, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3200:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1904, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3179:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3179:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "3179:31:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3246:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1917, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3250:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1913, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1912, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3221:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3237:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3221:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "3221:37:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1924, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3294:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1925, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3298:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1921, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3276:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1920, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3269:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3285:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3269:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "3269:37:8" + }, + { + "expression": { + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1928, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3317:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1935, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3362:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3354:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3354:7:8", + "typeDescriptions": {} + } + }, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3354:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1930, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1929, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3328:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3344:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3328:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3317:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "3317:51:8" + }, + { + "expression": { + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1940, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3379:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1947, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3424:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3416:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3416:7:8", + "typeDescriptions": {} + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1942, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3397:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1941, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3390:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3390:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3379:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "3379:51:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1953, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3451:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1954, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3461:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1952, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "3443:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3443:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1956, + "nodeType": "ExpressionStatement", + "src": "3443:27:8" + } + ] + }, + "functionSelector": "74a0f94b", + "id": 1958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "2270:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "to", + "nameLocation": "2306:2:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2298:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2298:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2287:28:8" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2342:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2334:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2359:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2351:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2351:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:34:8" + }, + "scope": 2103, + "src": "2261:1276:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2064, + "nodeType": "Block", + "src": "3680:778:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1967, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3695:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3695:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1970, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3714:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3714:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3695:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1977, + "nodeType": "IfStatement", + "src": "3691:92:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1974, + "name": "PoolFactory__InsufficientFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1624, + "src": "3751:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3751:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "RevertStatement", + "src": "3744:39:8" + } + }, + { + "assignments": [ + 1979, + 1981 + ], + "declarations": [ + { + "constant": false, + "id": 1979, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "3803:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3795:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "3822:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3814:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3814:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1982, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "3835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3835:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3794:59:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1985, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3868:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1986, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1979, + "src": "3881:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1988, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3894:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1989, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "3907:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3894:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3868:48:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1995, + "nodeType": "IfStatement", + "src": "3864:110:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1992, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3938:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3938:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1994, + "nodeType": "RevertStatement", + "src": "3931:43:8" + } + }, + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "3993:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1998, + "nodeType": "VariableDeclarationStatement", + "src": "3985:16:8" + }, + { + "assignments": [ + 2000 + ], + "declarations": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "4020:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "4012:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4012:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2001, + "nodeType": "VariableDeclarationStatement", + "src": "4012:16:8" + }, + { + "id": 2058, + "nodeType": "Block", + "src": "4039:372:8", + "statements": [ + { + "assignments": [ + 2003 + ], + "declarations": [ + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "4062:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4054:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2005, + "initialValue": { + "id": 2004, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4072:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4054:24:8" + }, + { + "assignments": [ + 2007 + ], + "declarations": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "4101:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4093:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4093:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2009, + "initialValue": { + "id": 2008, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4111:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:24:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2010, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4136:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4149:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4136:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2021, + "nodeType": "IfStatement", + "src": "4132:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2017, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4177:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2018, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4181:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2014, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4159:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2013, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4152:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4168:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4152:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2020, + "nodeType": "ExpressionStatement", + "src": "4152:40:8" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2022, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4211:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4224:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4211:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2033, + "nodeType": "IfStatement", + "src": "4207:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2029, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4252:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2030, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4256:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2026, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4234:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2025, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4227:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4243:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4227:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2032, + "nodeType": "ExpressionStatement", + "src": "4227:40:8" + } + }, + { + "expression": { + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2034, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4282:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2041, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4327:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4319:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4319:7:8", + "typeDescriptions": {} + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2036, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4300:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2035, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4293:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4309:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4293:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4282:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2045, + "nodeType": "ExpressionStatement", + "src": "4282:51:8" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2046, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4348:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2053, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4393:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4385:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4385:7:8", + "typeDescriptions": {} + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2048, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4366:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2047, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4359:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4375:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4359:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4348:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "4348:51:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "id": 2060, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4431:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2061, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4441:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2059, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4423:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4423:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2063, + "nodeType": "ExpressionStatement", + "src": "4423:27:8" + } + ] + }, + "functionSelector": "6d9a640a", + "id": 2065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "3554:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1960, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "3577:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3569:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3569:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1962, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "3606:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3598:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3598:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "to", + "nameLocation": "3635:2:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3627:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3627:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3558:112:8" + }, + "returnParameters": { + "id": 1966, + "nodeType": "ParameterList", + "parameters": [], + "src": "3680:0:8" + }, + "scope": 2103, + "src": "3545:913:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2076, + "nodeType": "Block", + "src": "4533:46:8", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2072, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "4552:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2073, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "4562:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4551:20:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2071, + "id": 2075, + "nodeType": "Return", + "src": "4544:27:8" + } + ] + }, + "functionSelector": "b9cf5005", + "id": 2077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "4475:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [], + "src": "4491:2:8" + }, + "returnParameters": { + "id": 2071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2068, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4515:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4515:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4524:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4514:18:8" + }, + "scope": 2103, + "src": "4466:113:8", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2101, + "nodeType": "Block", + "src": "4653:145:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2087, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4719:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4711:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4711:7:8", + "typeDescriptions": {} + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4711:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2082, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4693:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2081, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4686:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4701:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4686:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4773:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4765:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4765:7:8", + "typeDescriptions": {} + } + }, + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4765:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2091, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4747:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4740:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4755:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4740:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2080, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4664:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4664:126:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2100, + "nodeType": "ExpressionStatement", + "src": "4664:126:8" + } + ] + }, + "functionSelector": "fff6cae9", + "id": 2102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "4637:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [], + "src": "4641:2:8" + }, + "returnParameters": { + "id": 2079, + "nodeType": "ParameterList", + "parameters": [], + "src": "4653:0:8" + }, + "scope": 2103, + "src": "4628:170:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2104, + "src": "319:4482:8", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40, + 1620, + 1622, + 1624 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:4768:8" + }, + "id": 8 + }, + "contracts/core/interfaces/IFactory.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "exportedSymbols": { + "IFactory": [ + 2124 + ] + }, + "id": 2125, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2105, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IFactory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2124, + "linearizedBaseContracts": [ + 2124 + ], + "name": "IFactory", + "nameLocation": "70:8:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4a70f02e", + "id": 2114, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "95:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "127:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "119:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "144:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "108:57:9" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "184:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "184:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "183:9:9" + }, + "scope": 2124, + "src": "86:107:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e3433615", + "id": 2123, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "210:10:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "239:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "231:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "264:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "256:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "220:57:9" + }, + "returnParameters": { + "id": 2122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2121, + "mutability": "mutable", + "name": "poolPair", + "nameLocation": "304:8:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "296:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "295:18:9" + }, + "scope": 2124, + "src": "201:113:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2125, + "src": "60:257:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:284:9" + }, + "id": 9 + }, + "contracts/core/interfaces/IPool.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "exportedSymbols": { + "IPool": [ + 2166 + ] + }, + "id": 2167, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2126, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2166, + "linearizedBaseContracts": [ + 2166 + ], + "name": "IPool", + "nameLocation": "70:5:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "f09a4016", + "id": 2133, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "189:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2128, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "202:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "194:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "194:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "219:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "211:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "193:34:10" + }, + "returnParameters": { + "id": 2132, + "nodeType": "ParameterList", + "parameters": [], + "src": "236:0:10" + }, + "scope": 2166, + "src": "180:57:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 2140, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "254:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2135, + "mutability": "mutable", + "name": "_to", + "nameLocation": "267:3:10", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "259:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "259:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "258:13:10" + }, + "returnParameters": { + "id": 2139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "290:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "290:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "289:9:10" + }, + "scope": 2166, + "src": "245:54:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "74a0f94b", + "id": 2149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "316:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "to", + "nameLocation": "352:2:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "344:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "333:28:10" + }, + "returnParameters": { + "id": 2148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "388:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "380:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2147, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "405:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "397:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "397:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:34:10" + }, + "scope": 2166, + "src": "307:107:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b9cf5005", + "id": 2156, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "431:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:10" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2152, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "473:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "482:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:18:10" + }, + "scope": 2166, + "src": "422:69:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6d9a640a", + "id": 2165, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "508:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "531:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "523:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2160, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "560:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "552:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "552:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2162, + "mutability": "mutable", + "name": "to", + "nameLocation": "589:2:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "581:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "581:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "512:112:10" + }, + "returnParameters": { + "id": 2164, + "nodeType": "ParameterList", + "parameters": [], + "src": "633:0:10" + }, + "scope": 2166, + "src": "499:135:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2167, + "src": "60:577:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:604:10" + }, + "id": 10 + }, + "contracts/core/interfaces/IWedu.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "exportedSymbols": { + "IWEDU": [ + 2186 + ] + }, + "id": 2187, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2168, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IWEDU", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2186, + "linearizedBaseContracts": [ + 2186 + ], + "name": "IWEDU", + "nameLocation": "70:5:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 2171, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "92:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [], + "src": "99:2:11" + }, + "returnParameters": { + "id": 2170, + "nodeType": "ParameterList", + "parameters": [], + "src": "118:0:11" + }, + "scope": 2186, + "src": "83:36:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 2180, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "136:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2173, + "mutability": "mutable", + "name": "to", + "nameLocation": "153:2:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "145:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2175, + "mutability": "mutable", + "name": "value", + "nameLocation": "162:5:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "157:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2174, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "157:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "144:24:11" + }, + "returnParameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "187:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2177, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "187:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "186:6:11" + }, + "scope": 2186, + "src": "127:66:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e1a7d4d", + "id": 2185, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "210:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2185, + "src": "219:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "219:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:6:11" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [], + "src": "233:0:11" + }, + "scope": 2186, + "src": "201:33:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2187, + "src": "60:177:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:204:11" + }, + "id": 11 + }, + "contracts/core/libraries/Library.sol": { + "ast": { + "absolutePath": "contracts/core/libraries/Library.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 2296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2188, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:12" + }, + { + "errorSelector": "4bea99d9", + "id": 2190, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "66:29:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "95:2:12" + }, + "src": "60:38:12" + }, + { + "errorSelector": "74b959e9", + "id": 2192, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "106:24:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:12" + }, + "src": "100:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DefiLibrary", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2295, + "linearizedBaseContracts": [ + 2295 + ], + "name": "DefiLibrary", + "nameLocation": "145:11:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2235, + "nodeType": "Block", + "src": "397:341:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2203, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "412:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2204, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "422:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2209, + "nodeType": "IfStatement", + "src": "408:60:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2206, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "437:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "437:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2208, + "nodeType": "RevertStatement", + "src": "430:38:12" + } + }, + { + "expression": { + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 2210, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "480:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2211, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2201, + "src": "488:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2212, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "479:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2213, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "498:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2214, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "507:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "498:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 2219, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "562:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2220, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "570:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "561:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "498:79:12", + "trueExpression": { + "components": [ + { + "id": 2216, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "530:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2217, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "538:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2218, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "529:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "src": "479:98:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "479:98:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2225, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "675:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "685:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:12", + "typeDescriptions": {} + } + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "685:10:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "675:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2234, + "nodeType": "IfStatement", + "src": "671:59:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2192, + "src": "704:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "697:33:12" + } + } + ] + }, + "id": 2236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sortTokens", + "nameLocation": "274:10:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "303:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "295:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "328:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "320:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "284:57:12" + }, + "returnParameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "token0", + "nameLocation": "373:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "365:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "token1", + "nameLocation": "389:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "381:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2200, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "364:32:12" + }, + "scope": 2295, + "src": "265:473:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2293, + "nodeType": "Block", + "src": "1077:437:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2248, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1096:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1096:12:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:45:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 2247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1088:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1088:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2253, + "nodeType": "ExpressionStatement", + "src": "1088:68:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2255, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1189:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1189:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2258, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1206:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1189:31:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:42:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 2254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1167:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1167:121:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2264, + "nodeType": "ExpressionStatement", + "src": "1167:121:12" + }, + { + "assignments": [ + 2266 + ], + "declarations": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "amountInWithFee", + "nameLocation": "1304:15:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1299:20:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1299:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1322:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "393937", + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_997_by_1", + "typeString": "int_const 997" + }, + "value": "997" + }, + "src": "1322:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1299:37:12" + }, + { + "assignments": [ + 2272 + ], + "declarations": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "numerator", + "nameLocation": "1352:9:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1347:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1347:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2276, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2273, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1364:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2274, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1382:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1364:28:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1347:45:12" + }, + { + "assignments": [ + 2278 + ], + "declarations": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1408:11:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1403:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2286, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2279, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1423:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31303030", + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1435:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "1423:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1422:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "id": 2283, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1444:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2284, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1443:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1422:38:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1403:57:12" + }, + { + "expression": { + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2287, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "1471:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2288, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1483:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2289, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2278, + "src": "1495:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:23:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1471:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2292, + "nodeType": "ExpressionStatement", + "src": "1471:35:12" + } + ] + }, + "id": 2294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "943:12:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "971:8:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "966:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "966:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "995:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "990:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "990:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "1020:10:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1015:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1015:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "955:82:12" + }, + "returnParameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "1066:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1061:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:16:12" + }, + "scope": 2295, + "src": "934:580:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2296, + "src": "137:1380:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:1484:12" + }, + "id": 12 + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol", + "exportedSymbols": { + "AppleToken": [ + 2322 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2323, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2298, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2323, + "sourceUnit": 652, + "src": "61:55:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2299, + "name": "ERC20", + "nameLocations": [ + "143:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "143:5:13" + }, + "id": 2300, + "nodeType": "InheritanceSpecifier", + "src": "143:5:13" + } + ], + "canonicalName": "AppleToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2322, + "linearizedBaseContracts": [ + 2322, + 651, + 41, + 755, + 729, + 785 + ], + "name": "AppleToken", + "nameLocation": "129:10:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2307, + "nodeType": "Block", + "src": "192:2:13", + "statements": [] + }, + "id": 2308, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4170706c65", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1", + "typeString": "literal_string \"Apple\"" + }, + "value": "Apple" + }, + { + "hexValue": "415054", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:5:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1", + "typeString": "literal_string \"APT\"" + }, + "value": "APT" + } + ], + "id": 2305, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2302, + "name": "ERC20", + "nameLocations": [ + "170:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "170:5:13" + }, + "nodeType": "ModifierInvocation", + "src": "170:21:13" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "167:2:13" + }, + "returnParameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:0:13" + }, + "scope": 2322, + "src": "156:38:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2320, + "nodeType": "Block", + "src": "252:37:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2316, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "269:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2317, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "274:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2315, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "263:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "263:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2319, + "nodeType": "ExpressionStatement", + "src": "263:18:13" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "211:4:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "_to", + "nameLocation": "224:3:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "216:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "216:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2312, + "mutability": "mutable", + "name": "amount", + "nameLocation": "237:6:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "229:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "229:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "215:29:13" + }, + "returnParameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [], + "src": "252:0:13" + }, + "scope": 2322, + "src": "202:87:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2323, + "src": "120:205:13", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:292:13" + }, + "id": 13 + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol", + "exportedSymbols": { + "CherryToken": [ + 2349 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2350, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2324, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2325, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2350, + "sourceUnit": 652, + "src": "61:55:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2326, + "name": "ERC20", + "nameLocations": [ + "144:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "144:5:14" + }, + "id": 2327, + "nodeType": "InheritanceSpecifier", + "src": "144:5:14" + } + ], + "canonicalName": "CherryToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2349, + "linearizedBaseContracts": [ + 2349, + 651, + 41, + 755, + 729, + 785 + ], + "name": "CherryToken", + "nameLocation": "129:11:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2334, + "nodeType": "Block", + "src": "194:2:14", + "statements": [] + }, + "id": 2335, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436865727279", + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "177:8:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f", + "typeString": "literal_string \"Cherry\"" + }, + "value": "Cherry" + }, + { + "hexValue": "434854", + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "187:5:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18", + "typeString": "literal_string \"CHT\"" + }, + "value": "CHT" + } + ], + "id": 2332, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2329, + "name": "ERC20", + "nameLocations": [ + "171:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "171:5:14" + }, + "nodeType": "ModifierInvocation", + "src": "171:22:14" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2328, + "nodeType": "ParameterList", + "parameters": [], + "src": "168:2:14" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:14" + }, + "scope": 2349, + "src": "157:39:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2347, + "nodeType": "Block", + "src": "254:37:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2343, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "271:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2344, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "276:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2342, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "265:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2346, + "nodeType": "ExpressionStatement", + "src": "265:18:14" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "213:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2337, + "mutability": "mutable", + "name": "_to", + "nameLocation": "226:3:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "218:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2339, + "mutability": "mutable", + "name": "amount", + "nameLocation": "239:6:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "231:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "231:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:29:14" + }, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:14" + }, + "scope": 2349, + "src": "204:87:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2350, + "src": "120:207:14", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:294:14" + }, + "id": 14 + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "WrappedEduToken": [ + 2376 + ] + }, + "id": 2377, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2351, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:15" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2352, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2377, + "sourceUnit": 652, + "src": "61:55:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2353, + "name": "ERC20", + "nameLocations": [ + "148:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "148:5:15" + }, + "id": 2354, + "nodeType": "InheritanceSpecifier", + "src": "148:5:15" + } + ], + "canonicalName": "WrappedEduToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2376, + "linearizedBaseContracts": [ + 2376, + 651, + 41, + 755, + 729, + 785 + ], + "name": "WrappedEduToken", + "nameLocation": "129:15:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2361, + "nodeType": "Block", + "src": "203:2:15", + "statements": [] + }, + "id": 2362, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "57726170706564456475", + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "181:12:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479", + "typeString": "literal_string \"WrappedEdu\"" + }, + "value": "WrappedEdu" + }, + { + "hexValue": "57454455", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "195:6:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03", + "typeString": "literal_string \"WEDU\"" + }, + "value": "WEDU" + } + ], + "id": 2359, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2356, + "name": "ERC20", + "nameLocations": [ + "175:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "175:5:15" + }, + "nodeType": "ModifierInvocation", + "src": "175:27:15" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:15" + }, + "returnParameters": { + "id": 2360, + "nodeType": "ParameterList", + "parameters": [], + "src": "203:0:15" + }, + "scope": 2376, + "src": "161:44:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2374, + "nodeType": "Block", + "src": "372:37:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2370, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "389:3:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2371, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2366, + "src": "394:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "383:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "383:18:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2373, + "nodeType": "ExpressionStatement", + "src": "383:18:15" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2375, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "331:4:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "_to", + "nameLocation": "344:3:15", + "nodeType": "VariableDeclaration", + "scope": 2375, + "src": "336:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "336:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2366, + "mutability": "mutable", + "name": "amount", + "nameLocation": "357:6:15", + "nodeType": "VariableDeclaration", + "scope": 2375, + "src": "349:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "335:29:15" + }, + "returnParameters": { + "id": 2368, + "nodeType": "ParameterList", + "parameters": [], + "src": "372:0:15" + }, + "scope": 2376, + "src": "322:87:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2377, + "src": "120:325:15", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:412:15" + }, + "id": 15 + } + }, + "contracts": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/core/Factory.sol": { + "PoolFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotSetter", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__PoolExists", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "addToFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "removeFromFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiver", + "type": "address" + } + ], + "name": "setFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_832": { + "entryPoint": null, + "id": 832, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 221, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 242, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 180, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 143, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 198, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1199:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "922:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "968:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "970:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "970:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "970:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "943:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "952:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "939:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "939:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "964:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "935:32:16" + }, + "nodeType": "YulIf", + "src": "932:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1061:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1076:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1090:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1080:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1105:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1151:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1162:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1147:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1147:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1171:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1115:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1115:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1105:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "892:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "903:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "915:6:16", + "type": "" + } + ], + "src": "845:351:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@addToFeeReceiverSetter_986": { + "entryPoint": 571, + "id": 986, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@checkIfSetter_1018": { + "entryPoint": 2042, + "id": 1018, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createPool_942": { + "entryPoint": 671, + "id": 942, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getTokenPairs_958": { + "entryPoint": 404, + "id": 958, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@removeFromFeeReceiverSetter_1001": { + "entryPoint": 303, + "id": 1001, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setFeeReceiver_971": { + "entryPoint": 1965, + "id": 971, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 2279, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2302, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 2352, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2423, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": { + "entryPoint": 2522, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2549, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 2597, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": { + "entryPoint": 2642, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2233, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2201, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_address": { + "entryPoint": 2502, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint160": { + "entryPoint": 2482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2196, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_96": { + "entryPoint": 2469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 2253, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3663:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "907:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "953:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "955:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "955:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "955:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "928:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "937:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "924:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "920:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "920:32:16" + }, + "nodeType": "YulIf", + "src": "917:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1046:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1061:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1075:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1065:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1090:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1125:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1121:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1121:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1145:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1100:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1100:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1090:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "877:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "888:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "900:6:16", + "type": "" + } + ], + "src": "841:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1259:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1305:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1307:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1307:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1307:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1280:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1289:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1276:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1276:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1301:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:32:16" + }, + "nodeType": "YulIf", + "src": "1269:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1398:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1413:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1417:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1442:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1477:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1488:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1473:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1473:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1497:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1452:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1452:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1442:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1525:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1540:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1544:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1570:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1605:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1616:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1601:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1601:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1625:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1580:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1580:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1570:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1221:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1232:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1244:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1252:6:16", + "type": "" + } + ], + "src": "1176:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1738:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1761:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1743:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1743:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1731:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1731:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1731:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1709:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1716:3:16", + "type": "" + } + ], + "src": "1656:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1878:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1888:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1900:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1911:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1896:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1888:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1968:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1981:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1992:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1977:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1977:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1924:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "1924:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1924:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1850:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1862:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1873:4:16", + "type": "" + } + ], + "src": "1780:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2050:52:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2060:35:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2085:2:16", + "type": "", + "value": "96" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2089:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2081:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2081:14:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "2060:8:16" + } + ] + } + ] + }, + "name": "shift_left_96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2031:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "2041:8:16", + "type": "" + } + ], + "src": "2008:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2155:47:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2165:31:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2190:5:16" + } + ], + "functionName": { + "name": "shift_left_96", + "nodeType": "YulIdentifier", + "src": "2176:13:16" + }, + "nodeType": "YulFunctionCall", + "src": "2176:20:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2165:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2147:7:16", + "type": "" + } + ], + "src": "2108:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2255:53:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2265:37:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2296:5:16" + } + ], + "functionName": { + "name": "leftAlign_t_uint160", + "nodeType": "YulIdentifier", + "src": "2276:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2276:26:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2265:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2237:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2247:7:16", + "type": "" + } + ], + "src": "2208:100:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2397:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2414:3:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2457:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "2439:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2439:24:16" + } + ], + "functionName": { + "name": "leftAlign_t_address", + "nodeType": "YulIdentifier", + "src": "2419:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2419:45:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2407:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2407:58:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2385:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2392:3:16", + "type": "" + } + ], + "src": "2314:157:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2621:253:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2694:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2703:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2632:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2632:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2632:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2716:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2727:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2732:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2723:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2723:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2716:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2807:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2816:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2745:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2745:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2745:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2829:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2840:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2845:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2829:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2858:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2865:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2858:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2592:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2598:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2617:3:16", + "type": "" + } + ], + "src": "2477:397:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3006:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3016:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3028:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3039:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3024:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3016:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3096:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3109:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3105:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3105:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3052:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3052:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3052:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3190:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3201:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3186:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3186:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3133:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2970:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2982:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2990:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3001:4:16", + "type": "" + } + ], + "src": "2880:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3372:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3382:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3394:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3405:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3390:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3382:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3462:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3475:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3486:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3471:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3471:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3418:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3418:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3543:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3552:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3499:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3499:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3499:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3625:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3638:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3649:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3634:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3581:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3581:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3581:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3328:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3340:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3348:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3356:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3367:4:16", + "type": "" + } + ], + "src": "3218:442:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o" + }, + "methodIdentifiers": { + "addToFeeReceiverSetter(address)": "5ac40ab3", + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e", + "removeFromFeeReceiverSetter(address)": "48397023", + "setFeeReceiver(address)": "efdcd974" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/LiquidityProvider.sol": { + "LiquidityProvider": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1052": { + "entryPoint": null, + "id": 1052, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 273, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 167, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 224, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1355:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "939:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "985:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "987:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "987:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "960:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "969:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "956:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "981:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "952:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "952:32:16" + }, + "nodeType": "YulIf", + "src": "949:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1078:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1093:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1107:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1122:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1179:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1164:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1164:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1188:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1132:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1132:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1122:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1216:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1231:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1235:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1261:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1307:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1318:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1303:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1327:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1271:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1271:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1261:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "901:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "912:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "924:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "932:6:16", + "type": "" + } + ], + "src": "845:507:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addLiquidity_1185": { + "entryPoint": 1933, + "id": 1185, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@_swap_1350": { + "entryPoint": 2677, + "id": 1350, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addLiquidity_1260": { + "entryPoint": 216, + "id": 1260, + "parameterSlots": 6, + "returnSlots": 3 + }, + "@getAmountOut_2294": { + "entryPoint": 3071, + "id": 2294, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getAmountsOut_1536": { + "entryPoint": 1503, + "id": 1536, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@quote_1460": { + "entryPoint": 3305, + "id": 1460, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sortTokens_2236": { + "entryPoint": 3484, + "id": 2236, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@swapExactTokensForTokens_1421": { + "entryPoint": 802, + "id": 1421, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 5088, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4160, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 5244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 5337, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 5109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": { + "entryPoint": 3934, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4921, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5265, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 5358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256_fromMemory": { + "entryPoint": 5719, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4246, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6542, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4406, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4075, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5310, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 5047, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5154, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6577, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 5954, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3766, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 6414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 6301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3786, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3880, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4650, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "increment_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 5495, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 6367, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4603, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4155, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": { + "entryPoint": 5611, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": { + "entryPoint": 6155, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": { + "entryPoint": 6463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": { + "entryPoint": 6009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3836, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 5221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3890, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:20048:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:16", + "type": "" + } + ], + "src": "841:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:16" + }, + "nodeType": "YulIf", + "src": "977:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:16", + "type": "" + } + ], + "src": "924:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:16", + "type": "" + } + ], + "src": "1052:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1348:906:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1395:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1397:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1397:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1397:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1369:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1378:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1365:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1365:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1390:3:16", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1361:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1361:33:16" + }, + "nodeType": "YulIf", + "src": "1358:120:16" + }, + { + "nodeType": "YulBlock", + "src": "1488:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1503:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1507:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1532:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1567:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1578:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1563:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1587:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1542:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1542:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1532:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1615:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1630:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1644:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1634:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1660:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1695:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1706:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1691:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1670:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1670:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1660:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1743:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1758:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1762:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1788:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1823:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1834:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1819:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1819:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1843:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1798:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1798:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1788:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1871:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1886:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1900:2:16", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1890:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1916:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1951:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1962:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1947:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1971:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1926:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1926:53:16" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1916:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1999:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2014:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2028:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2018:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2045:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2080:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2091:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2076:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2100:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2055:53:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2045:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2128:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2143:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2157:3:16", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2147:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2174:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2220:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2205:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2229:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2184:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2184:53:16" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2174:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1278:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1289:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1301:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1309:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1317:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1325:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1333:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1341:6:16", + "type": "" + } + ], + "src": "1197:1057:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2325:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2342:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2365:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2347:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2347:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2335:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2335:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2335:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2313:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2320:3:16", + "type": "" + } + ], + "src": "2260:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2538:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2548:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2560:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2556:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2556:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2548:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2628:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2641:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2637:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2584:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2584:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2584:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2709:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2722:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2733:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2718:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2665:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2665:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2665:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2791:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2815:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2800:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2747:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2747:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2494:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2506:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2514:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2522:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2533:4:16", + "type": "" + } + ], + "src": "2384:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2921:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2938:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2941:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2931:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2931:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2931:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2832:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3044:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3054:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2955:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3177:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3177:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "3078:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3308:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3357:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3359:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3359:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3359:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3336:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3344:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3332:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3332:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3351:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3328:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3321:35:16" + }, + "nodeType": "YulIf", + "src": "3318:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "3449:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3472:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3459:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3459:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3449:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3522:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3524:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3524:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3524:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3494:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3502:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3491:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3491:30:16" + }, + "nodeType": "YulIf", + "src": "3488:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3614:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3630:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3638:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3626:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3614:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3662:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3676:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3684:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3672:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3672:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3658:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3658:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3692:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3655:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3655:41:16" + }, + "nodeType": "YulIf", + "src": "3652:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3275:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3283:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "3291:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3301:6:16", + "type": "" + } + ], + "src": "3218:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:714:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3973:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3975:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3975:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3975:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3948:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3944:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3969:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3940:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3940:32:16" + }, + "nodeType": "YulIf", + "src": "3937:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4066:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4081:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4095:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4085:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4110:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4145:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4156:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4141:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4165:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4120:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4120:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4110:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4193:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4208:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4222:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4212:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4238:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4273:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4284:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4269:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4293:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4248:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4248:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4238:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4321:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4336:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4367:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4378:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4363:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4350:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4350:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4340:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4429:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4431:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4431:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4431:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4401:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4398:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4398:30:16" + }, + "nodeType": "YulIf", + "src": "4395:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "4526:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4607:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4592:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4616:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "4544:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "4544:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4526:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4534:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3873:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3884:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3896:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3904:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3912:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3920:6:16", + "type": "" + } + ], + "src": "3792:849:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4721:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4732:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4748:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4742:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4742:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4732:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4704:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4714:6:16", + "type": "" + } + ], + "src": "4647:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4878:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4895:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4900:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4888:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4888:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4888:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "4916:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4935:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4931:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4931:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4916:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4850:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4855:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4866:11:16", + "type": "" + } + ], + "src": "4767:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5029:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5039:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5047:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5039:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5060:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5072:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5077:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5068:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5068:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5060:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5016:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5024:4:16", + "type": "" + } + ], + "src": "4957:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5150:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5167:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5190:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5172:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5172:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5160:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5160:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5138:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5145:3:16", + "type": "" + } + ], + "src": "5095:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5289:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5333:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5341:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5299:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "5299:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5299:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "5354:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5372:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5377:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5368:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5354:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5262:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5270:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5278:10:16", + "type": "" + } + ], + "src": "5209:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5469:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5479:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5491:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5496:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5487:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "5479:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5456:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "5464:4:16", + "type": "" + } + ], + "src": "5394:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5667:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5677:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5739:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5691:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "5691:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5681:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5754:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5835:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5840:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5761:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "5761:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5754:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5856:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5921:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5871:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "5871:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5860:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5936:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5950:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6040:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6067:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6061:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "6061:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6044:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6087:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "6138:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6153:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6094:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6094:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6087:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6170:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6233:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6180:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "6180:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6170:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5988:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5991:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5985:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5999:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6001:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6010:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6013:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6006:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6001:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5970:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5972:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5981:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5976:1:16", + "type": "" + } + ] + } + ] + }, + "src": "5966:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "6259:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6266:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6259:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5646:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5653:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5662:3:16", + "type": "" + } + ], + "src": "5543:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6429:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6439:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6451:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6447:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6447:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6439:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6486:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6497:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6482:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6482:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6505:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6501:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6501:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6475:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "6531:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6633:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6642:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6539:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "6539:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6531:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6401:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6413:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6424:4:16", + "type": "" + } + ], + "src": "6281:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6718:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6736:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6743:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6732:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6732:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6752:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6748:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6728:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6728:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6718:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6691:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6701:6:16", + "type": "" + } + ], + "src": "6660:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6796:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6813:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6816:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6806:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6806:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6806:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6910:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6913:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6903:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6903:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6903:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6937:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6927:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6927:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "6768:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6997:238:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7007:58:16", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7029:6:16" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7059:4:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7037:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "7037:27:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7025:40:16" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7011:10:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7176:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7178:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7178:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7178:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7119:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7131:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7116:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7116:34:16" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7155:10:16" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7167:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7152:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7113:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7113:62:16" + }, + "nodeType": "YulIf", + "src": "7110:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7214:2:16", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7218:10:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7207:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7207:22:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7207:22:16" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6983:6:16", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "6991:4:16", + "type": "" + } + ], + "src": "6954:281:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7282:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7292:30:16", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7302:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "7302:20:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7292:6:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7351:6:16" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7359:4:16" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7331:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "7331:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7331:33:16" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7266:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7275:6:16", + "type": "" + } + ], + "src": "7241:129:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7458:229:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7563:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7565:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7565:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7565:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7535:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7543:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7532:30:16" + }, + "nodeType": "YulIf", + "src": "7529:56:16" + }, + { + "nodeType": "YulAssignment", + "src": "7595:25:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7607:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7615:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7603:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7603:17:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7595:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:23:16", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7669:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7675:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7665:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:15:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7657:4:16" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7453:4:16", + "type": "" + } + ], + "src": "7376:311:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7812:608:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7822:90:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7847:56:16" + }, + "nodeType": "YulFunctionCall", + "src": "7847:64:16" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "7831:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "7831:81:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7822:5:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7921:16:16", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7932:5:16" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "7925:3:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7954:5:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7947:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7947:21:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7947:21:16" + }, + { + "nodeType": "YulAssignment", + "src": "7977:23:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7988:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7995:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7984:16:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "7977:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8010:44:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8028:6:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8040:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8048:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8024:30:16" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "8014:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8082:103:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8096:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8096:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8096:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8069:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8077:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8066:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8066:15:16" + }, + "nodeType": "YulIf", + "src": "8063:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8270:144:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8285:21:16", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8303:3:16" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "8289:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8327:3:16" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "8353:10:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8365:3:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8332:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8332:37:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8320:50:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8320:50:16" + }, + { + "nodeType": "YulAssignment", + "src": "8383:21:16", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8394:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8399:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8390:14:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8383:3:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8223:3:16" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8228:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8220:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8220:15:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8236:25:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8238:21:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8249:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8254:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8245:14:16" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8238:3:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8198:21:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8200:17:16", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8211:6:16" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8204:3:16", + "type": "" + } + ] + } + ] + }, + "src": "8194:220:16" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7782:6:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7790:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7798:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7806:5:16", + "type": "" + } + ], + "src": "7710:710:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8520:293:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8569:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8571:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8571:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8571:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8548:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8556:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8544:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8544:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8563:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8540:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8540:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8533:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8533:35:16" + }, + "nodeType": "YulIf", + "src": "8530:122:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8661:34:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8688:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8675:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8675:20:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8665:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8704:103:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8780:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8776:17:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8795:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8803:3:16" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8713:62:16" + }, + "nodeType": "YulFunctionCall", + "src": "8713:94:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8704:5:16" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8498:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8506:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8514:5:16", + "type": "" + } + ], + "src": "8443:370:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8944:704:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8990:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8992:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8992:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8992:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8965:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8974:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8961:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8957:32:16" + }, + "nodeType": "YulIf", + "src": "8954:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9083:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9098:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9112:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9102:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9127:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9162:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9173:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9158:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9158:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9182:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9137:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9137:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9127:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9210:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9225:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9239:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9229:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9255:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9290:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9301:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9286:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9286:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9310:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9265:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9265:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9255:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9338:303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9353:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9380:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9367:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9367:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9357:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9446:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9448:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9448:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9448:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9418:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9426:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9415:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9415:30:16" + }, + "nodeType": "YulIf", + "src": "9412:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "9543:88:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9603:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9599:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9623:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9553:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "9553:78:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9543:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8898:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8909:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8921:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8929:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8937:6:16", + "type": "" + } + ], + "src": "8819:829:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9719:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9736:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9759:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9741:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9729:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9707:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9714:3:16", + "type": "" + } + ], + "src": "9654:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9904:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9914:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9926:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9937:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9922:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9922:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9914:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9994:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10007:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10003:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10003:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9950:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9950:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9950:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10075:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10088:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10084:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10031:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10031:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10031:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9868:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9880:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9888:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9899:4:16", + "type": "" + } + ], + "src": "9778:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10179:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10189:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10204:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10198:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "10198:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10189:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10247:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "10220:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "10220:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10220:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10157:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10165:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10173:5:16", + "type": "" + } + ], + "src": "10116:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10342:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10388:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10390:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10390:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10390:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10363:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10372:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10359:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10359:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10384:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10355:32:16" + }, + "nodeType": "YulIf", + "src": "10352:119:16" + }, + { + "nodeType": "YulBlock", + "src": "10481:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10496:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10500:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10525:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10571:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10582:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10567:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10591:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "10535:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "10535:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10525:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10312:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10323:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10335:6:16", + "type": "" + } + ], + "src": "10265:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10776:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10786:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10798:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10809:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10794:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10794:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10786:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10866:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10879:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10890:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10875:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10875:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10822:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10822:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10822:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10947:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10960:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10971:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10956:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10903:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10903:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10903:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11053:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11038:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10985:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10985:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10732:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10744:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10752:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10760:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10771:4:16", + "type": "" + } + ], + "src": "10622:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11112:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11122:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11147:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11140:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11140:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11133:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11133:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11122:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11094:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11104:7:16", + "type": "" + } + ], + "src": "11070:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11206:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11260:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11269:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11272:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11262:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11262:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11262:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11229:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11251:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11236:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "11236:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11226:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11226:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11219:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11219:40:16" + }, + "nodeType": "YulIf", + "src": "11216:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11199:5:16", + "type": "" + } + ], + "src": "11166:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11348:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11358:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11373:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11367:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11367:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11358:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11413:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "11389:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "11389:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11389:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11326:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11334:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11342:5:16", + "type": "" + } + ], + "src": "11288:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11505:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11551:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11553:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11553:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11553:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11526:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11535:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11522:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11522:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11547:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11518:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11518:32:16" + }, + "nodeType": "YulIf", + "src": "11515:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11644:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11659:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11673:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11663:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11688:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11731:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11742:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11727:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11751:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11698:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "11698:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11688:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11475:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11486:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11498:6:16", + "type": "" + } + ], + "src": "11431:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11880:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11890:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11902:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11913:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11898:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11898:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11890:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11970:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11979:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11926:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "11926:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11926:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11852:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11864:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11875:4:16", + "type": "" + } + ], + "src": "11782:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12098:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12092:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "12092:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12141:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "12114:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "12114:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12114:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:16", + "type": "" + } + ], + "src": "12010:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12236:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12282:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12284:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12284:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12284:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12257:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12266:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12253:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12253:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12278:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12249:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12249:32:16" + }, + "nodeType": "YulIf", + "src": "12246:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12375:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12390:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12404:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12394:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12419:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12465:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12461:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12461:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12485:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "12429:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "12429:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12419:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12206:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12217:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12229:6:16", + "type": "" + } + ], + "src": "12159:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12544:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12561:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12564:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12554:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12554:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12554:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12658:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12661:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12651:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12651:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12651:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12682:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12685:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12675:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12675:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12675:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "12516:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12768:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12814:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12816:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12816:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12816:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12789:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12798:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12785:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12781:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12781:32:16" + }, + "nodeType": "YulIf", + "src": "12778:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12907:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12922:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12936:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12926:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12951:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12986:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12997:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12982:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12982:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13006:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12961:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "12961:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12951:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12738:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12749:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12761:6:16", + "type": "" + } + ], + "src": "12702:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13065:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13085:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13075:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13075:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13075:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13179:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13182:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13172:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13172:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13172:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13196:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13196:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13196:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "13037:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13268:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13278:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13301:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13283:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13283:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13278:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13312:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13335:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13317:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13317:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13312:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13346:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13358:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13361:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13354:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13354:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13346:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13388:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13390:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "13390:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13390:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13379:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13385:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13376:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13376:11:16" + }, + "nodeType": "YulIf", + "src": "13373:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13254:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13257:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "13263:4:16", + "type": "" + } + ], + "src": "13223:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13536:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13541:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13529:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13529:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "13557:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13576:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13581:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13572:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13572:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13557:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13491:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13496:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13507:11:16", + "type": "" + } + ], + "src": "13423:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:32:16", + "type": "", + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13715:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:56:16" + } + ] + }, + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:16", + "type": "" + } + ], + "src": "13598:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13930:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13940:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14006:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14011:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13947:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "13947:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13940:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14112:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulIdentifier", + "src": "14023:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "14023:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14023:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "14125:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14136:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14141:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14132:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14125:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13918:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13926:3:16", + "type": "" + } + ], + "src": "13784:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14327:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14337:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14345:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14337:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14395:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14380:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14403:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14409:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14399:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14373:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "14373:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "14429:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14563:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14437:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "14437:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14429:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14307:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14322:4:16", + "type": "" + } + ], + "src": "14156:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14675:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14721:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14723:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14723:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14723:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14696:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14705:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14692:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14692:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14688:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14688:32:16" + }, + "nodeType": "YulIf", + "src": "14685:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14814:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14829:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14833:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14858:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14904:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14915:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14900:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14900:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14924:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "14868:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "14868:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14858:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14952:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14997:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15043:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15054:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15039:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15039:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15063:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15007:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "15007:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14997:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14637:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14648:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14660:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14668:6:16", + "type": "" + } + ], + "src": "14581:507:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15138:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15148:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15171:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15153:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15153:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15148:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15182:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15205:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15187:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15187:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15182:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15216:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15227:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15230:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15223:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15216:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15256:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15258:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15258:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15258:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15248:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15251:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15245:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15245:10:16" + }, + "nodeType": "YulIf", + "src": "15242:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15125:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15128:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15134:3:16", + "type": "" + } + ], + "src": "15094:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15334:190:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15344:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15371:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15353:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15353:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15344:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15467:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15469:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15469:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15469:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15392:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15399:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15389:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15389:77:16" + }, + "nodeType": "YulIf", + "src": "15386:103:16" + }, + { + "nodeType": "YulAssignment", + "src": "15498:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15509:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15505:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15505:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "15498:3:16" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15320:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "15330:3:16", + "type": "" + } + ], + "src": "15291:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15558:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15575:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15578:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15568:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15568:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15568:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15672:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15675:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15665:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15665:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15665:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15696:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15699:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15689:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15689:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15689:15:16" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "15530:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15870:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15880:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15892:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15903:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15888:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15880:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15960:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15973:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15984:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15969:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15969:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15916:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15916:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15916:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16041:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16054:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16065:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16050:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16050:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15997:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15997:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15997:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16123:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16136:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16147:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16132:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16079:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "16079:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16079:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15838:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15846:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15854:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15865:4:16", + "type": "" + } + ], + "src": "15716:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16270:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16292:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16300:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16288:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16304:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_I" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16281:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16281:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16281:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16360:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16368:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16356:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16356:15:16" + }, + { + "hexValue": "4e5055545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16373:13:16", + "type": "", + "value": "NPUT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16349:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16349:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:38:16" + } + ] + }, + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16262:6:16", + "type": "" + } + ], + "src": "16164:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16546:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16556:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16622:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16627:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16563:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16563:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16556:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16728:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulIdentifier", + "src": "16639:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16639:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16639:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16741:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16752:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16757:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16748:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16741:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16534:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16542:3:16", + "type": "" + } + ], + "src": "16400:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16943:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16953:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16965:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16976:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16961:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16953:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17000:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17011:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16996:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16996:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17019:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17025:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17015:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17015:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16989:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16989:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16989:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17045:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17179:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17053:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17053:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17045:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16923:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16938:4:16", + "type": "" + } + ], + "src": "16772:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:121:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_L" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:16" + }, + { + "hexValue": "4951554944495459", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:10:16", + "type": "", + "value": "IQUIDITY" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17382:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:35:16" + } + ] + }, + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:16", + "type": "" + } + ], + "src": "17197:227:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17576:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17586:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17652:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17657:2:16", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17593:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17593:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17586:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17758:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulIdentifier", + "src": "17669:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17669:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17669:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17771:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17782:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17787:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17778:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17771:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17564:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17572:3:16", + "type": "" + } + ], + "src": "17430:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17973:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17983:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17995:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18006:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17991:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17991:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18030:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18041:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18026:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18026:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18049:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18055:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18045:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18045:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18019:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18019:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18019:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18075:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18209:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18083:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18083:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18075:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17953:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17968:4:16", + "type": "" + } + ], + "src": "17802:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18275:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18285:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18308:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18290:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18290:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18285:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18342:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18324:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18324:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18319:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18353:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18376:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18379:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "18372:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18372:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "18357:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18390:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "18419:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18401:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18401:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18390:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18608:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18610:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18610:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18610:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18541:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18534:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18534:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18564:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18571:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18580:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18567:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18561:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18561:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "18514:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18514:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18494:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18494:113:16" + }, + "nodeType": "YulIf", + "src": "18491:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18258:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18261:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "18267:7:16", + "type": "" + } + ], + "src": "18227:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18671:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18688:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18691:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18681:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18681:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18681:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18785:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18788:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18778:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18778:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18778:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18809:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18812:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "18802:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18802:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18802:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "18643:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18871:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18881:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18904:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18886:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18886:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18881:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18915:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18938:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18920:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18920:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18915:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18962:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "18964:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18964:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18964:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18959:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18952:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18952:9:16" + }, + "nodeType": "YulIf", + "src": "18949:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "18994:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19003:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19006:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18999:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18999:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "18994:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18860:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18863:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "18869:1:16", + "type": "" + } + ], + "src": "18829:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19126:122:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19148:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19156:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19144:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19144:14:16" + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19160:34:16", + "type": "", + "value": "UniswapV2DefiLibrary: INSUFFICIE" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19137:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19137:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19137:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19216:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19224:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19212:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19212:15:16" + }, + { + "hexValue": "4e545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19229:11:16", + "type": "", + "value": "NT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19205:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19205:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19205:36:16" + } + ] + }, + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19118:6:16", + "type": "" + } + ], + "src": "19020:228:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19400:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19410:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19476:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19481:2:16", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19417:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19417:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19410:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19582:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulIdentifier", + "src": "19493:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "19493:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19493:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "19595:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19606:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19611:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19602:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19595:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19388:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19396:3:16", + "type": "" + } + ], + "src": "19254:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19797:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19807:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19819:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19830:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19815:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19815:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19807:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19865:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19850:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19873:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19879:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19869:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19869:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19843:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19843:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19843:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "19899:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20033:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19907:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "19907:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19899:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19777:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19792:4:16", + "type": "" + } + ], + "src": "19626:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1034": [ + { + "length": 32, + "start": 247 + }, + { + "length": 32, + "start": 808 + }, + { + "length": 32, + "start": 1940 + }, + { + "length": 32, + "start": 2152 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o" + }, + "methodIdentifiers": { + "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f", + "getAmountsOut(address,uint256,address[])": "bb7b9c76", + "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}" + } + }, + "contracts/core/Pool.sol": { + "Pool": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientLiquidity", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1659": { + "entryPoint": null, + "id": 1659, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 701, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 516, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 662, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 536, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 856, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 327, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 826, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 794, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 280, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 233, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 576, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 634, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 430, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 586, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 629, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MINIMUM_LIQUIDITY_1640": { + "entryPoint": 3762, + "id": 1640, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_542": { + "entryPoint": 4500, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 5335, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_burn_524": { + "entryPoint": 5205, + "id": 524, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 5032, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 4492, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 4518, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 4666, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_1699": { + "entryPoint": 5187, + "id": 1699, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 5806, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 3768, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 991, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 2461, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 1083, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTokenReserves_2077": { + "entryPoint": 3745, + "id": 2077, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@init_1683": { + "entryPoint": 3903, + "id": 1683, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@liquidateLpTokens_1958": { + "entryPoint": 2533, + "id": 1958, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@min_1558": { + "entryPoint": 5162, + "id": 1558, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_1816": { + "entryPoint": 1092, + "id": 1816, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_197": { + "entryPoint": 845, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sqrt_1612": { + "entryPoint": 4910, + "id": 1612, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@swap_2065": { + "entryPoint": 1681, + "id": 2065, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@symbol_206": { + "entryPoint": 3564, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sync_2102": { + "entryPoint": 4170, + "id": 2102, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@totalSupply_224": { + "entryPoint": 1026, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 1036, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 3710, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 6611, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 7746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 6665, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 7355, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 7153, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 6846, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 6686, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 7767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 7376, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256t_address": { + "entryPoint": 7029, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7313, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 6762, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6442, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 6942, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 7328, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 7682, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7812, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 6777, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6499, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7112, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 6957, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 6355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 6366, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 7867, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 7633, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 7520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 7468, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 6570, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 6750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 6538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6632, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 6929, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 6383, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 7264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 7421, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 7586, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 7217, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 6533, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 6425, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 6588, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 7723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 6642, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10776:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5288:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5334:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5336:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5336:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5336:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5309:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5318:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5305:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5330:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5301:32:16" + }, + "nodeType": "YulIf", + "src": "5298:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5427:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5442:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5456:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5446:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5471:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5506:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5517:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5502:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5502:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5526:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5481:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5481:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5471:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5554:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5569:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5583:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5573:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5599:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5634:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5645:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5630:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5654:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5609:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5609:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5599:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5682:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5697:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5711:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5701:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5727:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5773:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5782:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5737:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5737:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5727:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5242:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5253:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5265:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5273:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5281:6:16", + "type": "" + } + ], + "src": "5188:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5939:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5949:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5961:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5972:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5957:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5949:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6053:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6038:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5985:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6110:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6123:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6134:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6119:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6119:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6066:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6066:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6066:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5903:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5915:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5923:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5934:4:16", + "type": "" + } + ], + "src": "5813:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6234:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6280:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6282:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6282:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6282:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6255:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6264:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6251:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6251:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6276:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6247:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6247:32:16" + }, + "nodeType": "YulIf", + "src": "6244:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6373:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6388:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6402:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6392:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6417:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6452:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6463:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6448:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6448:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6472:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6427:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6427:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6417:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6500:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6515:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6529:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6519:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6545:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6580:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6591:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6576:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6576:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6600:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6555:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6555:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6545:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6196:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6207:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6219:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6227:6:16", + "type": "" + } + ], + "src": "6151:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6659:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6676:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6679:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6669:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6669:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6669:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6776:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6766:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6766:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6766:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6797:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6790:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6790:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6790:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6631:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6868:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6878:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6892:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6898:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6888:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6878:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6909:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6939:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6945:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6935:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6913:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6986:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7000:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7014:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7022:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7010:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7010:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7000:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6966:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6959:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6959:26:16" + }, + "nodeType": "YulIf", + "src": "6956:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7089:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "7103:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7103:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7103:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7053:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7076:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7084:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7073:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7073:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7050:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7050:38:16" + }, + "nodeType": "YulIf", + "src": "7047:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6852:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6861:6:16", + "type": "" + } + ], + "src": "6817:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7208:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7225:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7248:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7230:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7230:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7218:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7218:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7196:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7203:3:16", + "type": "" + } + ], + "src": "7143:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7365:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7375:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7387:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7398:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7383:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7383:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7375:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7455:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7468:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7479:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7464:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7411:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7411:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7411:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7337:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7349:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7360:4:16", + "type": "" + } + ], + "src": "7267:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7558:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7568:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7583:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7577:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "7577:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7568:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7626:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7599:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7599:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7599:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7536:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7544:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7552:5:16", + "type": "" + } + ], + "src": "7495:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7721:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7767:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7769:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7769:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7769:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7742:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7751:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7738:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7763:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7734:32:16" + }, + "nodeType": "YulIf", + "src": "7731:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7860:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7875:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7889:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7879:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7904:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7950:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7946:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7970:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "7914:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "7914:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7691:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7702:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7714:6:16", + "type": "" + } + ], + "src": "7644:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8029:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8049:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8039:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8039:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8039:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8143:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8146:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8136:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8136:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8136:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8167:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8170:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8160:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8160:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "8001:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8232:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8242:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8265:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8247:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8247:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8242:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8276:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8299:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8281:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8281:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8276:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8310:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8325:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8318:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8310:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8352:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8354:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8354:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8354:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8343:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8349:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8340:11:16" + }, + "nodeType": "YulIf", + "src": "8337:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8218:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8221:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "8227:4:16", + "type": "" + } + ], + "src": "8187:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8435:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8445:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8468:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8450:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8450:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8445:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8479:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8502:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8484:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8484:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8479:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8513:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8536:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8539:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8532:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8532:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "8517:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8550:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "8579:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8561:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8561:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8550:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8768:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8701:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8694:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8694:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8724:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8731:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8740:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8727:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8721:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8721:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8674:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8674:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8654:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8654:113:16" + }, + "nodeType": "YulIf", + "src": "8651:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8418:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8421:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "8427:7:16", + "type": "" + } + ], + "src": "8387:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8831:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8848:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8841:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8841:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8945:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8948:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8938:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8938:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8938:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8969:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8972:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8962:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8962:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8962:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "8803:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9031:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9041:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9064:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9046:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9046:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9041:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9075:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9098:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9080:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9080:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9075:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9122:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "9124:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "9124:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9124:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9119:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9112:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9112:9:16" + }, + "nodeType": "YulIf", + "src": "9109:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "9154:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9163:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9166:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9159:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "9154:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9020:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9023:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "9029:1:16", + "type": "" + } + ], + "src": "8989:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9306:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9316:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9328:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9339:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9324:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9324:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9316:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9396:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9409:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9420:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9405:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9352:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9352:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9352:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9477:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9501:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9486:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "9433:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9433:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9270:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9282:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9290:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9301:4:16", + "type": "" + } + ], + "src": "9180:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9558:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9612:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9621:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9624:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9614:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9614:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9581:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9603:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9588:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "9588:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9578:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9578:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9571:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9571:40:16" + }, + "nodeType": "YulIf", + "src": "9568:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9551:5:16", + "type": "" + } + ], + "src": "9518:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9700:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9710:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9725:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "9719:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9710:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9765:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9741:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9741:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9678:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9686:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9694:5:16", + "type": "" + } + ], + "src": "9640:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9857:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9905:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9905:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9878:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9887:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9874:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9874:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9870:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9870:32:16" + }, + "nodeType": "YulIf", + "src": "9867:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9996:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10011:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10025:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10015:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10040:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10083:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10094:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10079:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10079:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10103:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "10050:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "10050:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10040:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9827:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9838:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9850:6:16", + "type": "" + } + ], + "src": "9783:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10288:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10298:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10310:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10321:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10306:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10306:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10298:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10378:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10391:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10402:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10387:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10334:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10334:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10334:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10459:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10468:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10415:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10415:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10415:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10541:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10554:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10565:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10550:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10550:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10497:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10497:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10497:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10244:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10264:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10272:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10283:4:16", + "type": "" + } + ], + "src": "10134:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10626:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10636:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10659:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10641:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10636:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10670:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10693:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10675:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10675:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10670:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10704:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10715:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10718:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10711:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10711:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10704:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10744:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10746:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "10746:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10746:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10736:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10739:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10733:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10733:10:16" + }, + "nodeType": "YulIf", + "src": "10730:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10613:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10616:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10622:3:16", + "type": "" + } + ], + "src": "10582:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1631": [ + { + "length": 32, + "start": 3928 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o" + }, + "methodIdentifiers": { + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "name()": "06fdde03", + "swap(uint256,uint256,address)": "6d9a640a", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IFactory.sol": { + "IFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolPair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IPool.sol": { + "IPool": { + "abi": [ + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "swap(uint256,uint256,address)": "6d9a640a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IWedu.sol": { + "IWEDU": { + "abi": [ + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "deposit()": "d0e30db0", + "transfer(address,uint256)": "a9059cbb", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}" + } + }, + "contracts/core/libraries/Library.sol": { + "DefiLibrary": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "AppleToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2308": { + "entryPoint": null, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:13:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2321": { + "entryPoint": 798, + "id": 2321, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:13:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "CherryToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2335": { + "entryPoint": null, + "id": 2335, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:14:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2348": { + "entryPoint": 798, + "id": 2348, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:14:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "WrappedEduToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2362": { + "entryPoint": null, + "id": 2362, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ", + "sourceMap": "120:325:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:325:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:325:15:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2375": { + "entryPoint": 798, + "id": 2375, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ", + "sourceMap": "120:325:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;322:87:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;322:87:15:-;383:18;389:3;394:6;383:5;:18::i;:::-;322:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEduToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0x0e77a55918a3e8b9f3ad3c47b4a00f30e7c01e54b020ab9c6dbdb183ff3327c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea886a6d9652fa622008f2e3bac165b09329d1bdefdc89bce5fcc1373c8343df\",\"dweb:/ipfs/QmQ1kQ6AnmSbzT1vhdSkf2ExvgXKwDPhgzsp1gLWj21mER\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1114/journal.jsonl b/Core uniswap/ignition/deployments/chain-1114/journal.jsonl new file mode 100644 index 00000000..9ee4b656 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1114/journal.jsonl @@ -0,0 +1,6 @@ + +{"chainId":1114,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"WrappedEduTokenMod#WrappedEduToken","constructorArgs":[],"contractName":"WrappedEduToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"WrappedEduTokenMod#WrappedEduToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"WrappedEduTokenMod#WrappedEduToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"artifactId":"CherryTokenModule#CherryToken","constructorArgs":[],"contractName":"CherryToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"CherryTokenModule#CherryToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"CherryTokenModule#CherryToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json new file mode 100644 index 00000000..44fecd38 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json new file mode 100644 index 00000000..a4d5abd0 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json @@ -0,0 +1,342 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CherryToken", + "sourceName": "contracts/core/wrapped-native-token/CherryToken.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json b/Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json new file mode 100644 index 00000000..39080d8c --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json @@ -0,0 +1,79796 @@ +{ + "id": "6919de14a125c32fee1b7b138baa53da", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "contracts/core/Factory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}" + }, + "contracts/core/interfaces/IFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}" + }, + "contracts/core/interfaces/IPool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}" + }, + "contracts/core/interfaces/IWedu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}" + }, + "contracts/core/libraries/Library.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}" + }, + "contracts/core/LiquidityProvider.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}" + }, + "contracts/core/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}" + }, + "contracts/core/Pool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}" + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEduToken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n // function deposit(uint256 amount) public payable {\r\n // _mint(msg.sender, amount);\r\n // }\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2397, + "file": "contracts/core/Pool.sol", + "start": 2380 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2416, + "file": "contracts/core/Pool.sol", + "start": 2399 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4393, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4375 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4413, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4395 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 136 + ], + "IERC20Errors": [ + 41 + ], + "IERC721Errors": [ + 89 + ] + }, + "id": 137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "138:141:0", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 41, + "linearizedBaseContracts": [ + 41 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "309:309:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 11, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "654:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "670:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "687:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:0" + }, + "src": "623:80:0" + }, + { + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "709:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 16, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "891:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:0" + }, + "src": "866:41:0" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "913:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 21, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "1104:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "src": "1077:45:0" + }, + { + "documentation": { + "id": 22, + "nodeType": "StructuredDocumentation", + "src": "1128:345:0", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 30, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1511:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1528:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1547:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:0" + }, + "src": "1478:85:0" + }, + { + "documentation": { + "id": 31, + "nodeType": "StructuredDocumentation", + "src": "1569:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 35, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1775:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:0" + }, + "src": "1748:45:0" + }, + { + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "1799:195:0", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 40, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:0" + }, + "src": "1999:43:0" + } + ], + "scope": 137, + "src": "280:1764:0", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 42, + "nodeType": "StructuredDocumentation", + "src": "2046:143:0", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2220:219:0", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 47, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:0", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "2469:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:0" + }, + "src": "2444:40:0" + }, + { + "documentation": { + "id": 48, + "nodeType": "StructuredDocumentation", + "src": "2490:132:0", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 52, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2656:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:0" + }, + "src": "2627:46:0" + }, + { + "documentation": { + "id": 53, + "nodeType": "StructuredDocumentation", + "src": "2679:289:0", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 61, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3000:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3016:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3033:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:0" + }, + "src": "2973:75:0" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "3054:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 66, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "3237:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 63, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:0" + }, + "src": "3211:42:0" + }, + { + "documentation": { + "id": 67, + "nodeType": "StructuredDocumentation", + "src": "3259:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 71, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "3451:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:0" + }, + "src": "3423:46:0" + }, + { + "documentation": { + "id": 72, + "nodeType": "StructuredDocumentation", + "src": "3475:247:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 78, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3760:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3778:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:0" + }, + "src": "3727:68:0" + }, + { + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "3801:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 83, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "4008:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:0" + }, + "src": "3980:46:0" + }, + { + "documentation": { + "id": 84, + "nodeType": "StructuredDocumentation", + "src": "4032:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 88, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "4262:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:0" + }, + "src": "4234:46:0" + } + ], + "scope": 137, + "src": "2190:2092:0", + "usedErrors": [ + 47, + 52, + 61, + 66, + 71, + 78, + 83, + 88 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 90, + "nodeType": "StructuredDocumentation", + "src": "4284:145:0", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "4461:361:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 101, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4860:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4876:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4893:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4909:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:0" + }, + "src": "4827:99:0" + }, + { + "documentation": { + "id": 102, + "nodeType": "StructuredDocumentation", + "src": "4932:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 106, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "5116:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:0" + }, + "src": "5089:43:0" + }, + { + "documentation": { + "id": 107, + "nodeType": "StructuredDocumentation", + "src": "5138:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 111, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "5331:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:0" + }, + "src": "5302:47:0" + }, + { + "documentation": { + "id": 112, + "nodeType": "StructuredDocumentation", + "src": "5355:256:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 118, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:0" + }, + "src": "5616:68:0" + }, + { + "documentation": { + "id": 119, + "nodeType": "StructuredDocumentation", + "src": "5690:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 123, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:0", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "5898:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:0" + }, + "src": "5869:47:0" + }, + { + "documentation": { + "id": 124, + "nodeType": "StructuredDocumentation", + "src": "5922:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 128, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "6153:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:0" + }, + "src": "6124:47:0" + }, + { + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "6177:280:0", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 135, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6494:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6513:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:0" + }, + "src": "6462:73:0" + } + ], + "scope": 137, + "src": "4430:2107:0", + "usedErrors": [ + 101, + 106, + 111, + 118, + 123, + 128, + 135 + ], + "usedEvents": [] + } + ], + "src": "112:6426:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 140, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 730, + "src": "131:36:1", + "symbolAliases": [ + { + "foreign": { + "id": 139, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "139:6:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 142, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 756, + "src": "168:63:1", + "symbolAliases": [ + { + "foreign": { + "id": 141, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "176:14:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 144, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 786, + "src": "232:48:1", + "symbolAliases": [ + { + "foreign": { + "id": 143, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "240:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 146, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 137, + "src": "281:65:1", + "symbolAliases": [ + { + "foreign": { + "id": 145, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "289:12:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 148, + "name": "Context", + "nameLocations": [ + "1133:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 785, + "src": "1133:7:1" + }, + "id": 149, + "nodeType": "InheritanceSpecifier", + "src": "1133:7:1" + }, + { + "baseName": { + "id": 150, + "name": "IERC20", + "nameLocations": [ + "1142:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "1142:6:1" + }, + "id": 151, + "nodeType": "InheritanceSpecifier", + "src": "1142:6:1" + }, + { + "baseName": { + "id": 152, + "name": "IERC20Metadata", + "nameLocations": [ + "1150:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 755, + "src": "1150:14:1" + }, + "id": 153, + "nodeType": "InheritanceSpecifier", + "src": "1150:14:1" + }, + { + "baseName": { + "id": 154, + "name": "IERC20Errors", + "nameLocations": [ + "1166:12:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "1166:12:1" + }, + "id": 155, + "nodeType": "InheritanceSpecifier", + "src": "1166:12:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "348:757:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications." + }, + "fullyImplemented": true, + "id": 651, + "linearizedBaseContracts": [ + 651, + 41, + 755, + 729, + 785 + ], + "name": "ERC20", + "nameLocation": "1124:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1229:9:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1185:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 158, + "keyName": "account", + "keyNameLocation": "1201:7:1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1185:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1317:11:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1245:83:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 164, + "keyName": "account", + "keyNameLocation": "1261:7:1", + "keyType": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1245:63:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 163, + "keyName": "spender", + "keyNameLocation": "1288:7:1", + "keyType": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1272:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1351:12:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1335:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1385:5:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1370:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1370:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1411:7:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1396:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 170, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 187, + "nodeType": "Block", + "src": "1657:57:1", + "statements": [ + { + "expression": { + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 179, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 180, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "1675:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1667:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "1667:13:1" + }, + { + "expression": { + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "1690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 184, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "1700:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1690:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "1690:17:1" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "1425:171:1", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 188, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1627:5:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1613:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 173, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1613:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1648:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1634:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1634:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1612:44:1" + }, + "returnParameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1657:0:1" + }, + "scope": 651, + "src": "1601:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 742 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "1839:29:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1856:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "1849:12:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "1720:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "1788:4:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1792:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "1824:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1824:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1823:15:1" + }, + "scope": 651, + "src": "1779:89:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 748 + ], + "body": { + "id": 205, + "nodeType": "Block", + "src": "2043:31:1", + "statements": [ + { + "expression": { + "id": 203, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 202, + "id": 204, + "nodeType": "Return", + "src": "2053:14:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "1874:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "1990:6:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:1" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2028:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2028:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2027:15:1" + }, + "scope": 651, + "src": "1981:93:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 214, + "nodeType": "Block", + "src": "2763:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2780:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 211, + "id": 213, + "nodeType": "Return", + "src": "2773:9:1" + } + ] + }, + "documentation": { + "id": 207, + "nodeType": "StructuredDocumentation", + "src": "2080:622:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2716:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [], + "src": "2724:2:1" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2756:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 209, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2756:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2755:7:1" + }, + "scope": 651, + "src": "2707:82:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 678 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "2910:36:1", + "statements": [ + { + "expression": { + "id": 221, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2927:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 220, + "id": 222, + "nodeType": "Return", + "src": "2920:19:1" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "2795:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2858:11:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:2:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "2901:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2900:9:1" + }, + "scope": 651, + "src": "2849:97:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 236, + "nodeType": "Block", + "src": "3078:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "3095:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3095:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 231, + "id": 235, + "nodeType": "Return", + "src": "3088:25:1" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "2952:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3013:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "account", + "nameLocation": "3031:7:1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3022:17:1" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3068:9:1" + }, + "scope": 651, + "src": "3004:116:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 260, + "nodeType": "Block", + "src": "3390:103:1", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3408:5:1", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "3400:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 249, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3416:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3400:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 254, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3455:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3459:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3438:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3438:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "3438:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 246, + "id": 259, + "nodeType": "Return", + "src": "3475:11:1" + } + ] + }, + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3126:184:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3324:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "to", + "nameLocation": "3341:2:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3333:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "value", + "nameLocation": "3353:5:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3345:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3332:27:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3384:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3384:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3383:6:1" + }, + "scope": 651, + "src": "3315:178:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 706 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "3640:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 271, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 272, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "3669:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "3676:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 270, + "id": 276, + "nodeType": "Return", + "src": "3650:34:1" + } + ] + }, + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "3499:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3560:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3578:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3570:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3570:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3593:7:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3585:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3569:32:1" + }, + "returnParameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3631:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3630:9:1" + }, + "scope": 651, + "src": "3551:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 716 + ], + "body": { + "id": 301, + "nodeType": "Block", + "src": "4077:107:1", + "statements": [ + { + "assignments": [ + 289 + ], + "declarations": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4095:5:1", + "nodeType": "VariableDeclaration", + "scope": 301, + "src": "4087:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4087:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 292, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 290, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4103:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4103:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4087:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 294, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4134:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 295, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4150:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 293, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 542, + "src": "4125:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4125:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4125:31:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4173:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 287, + "id": 300, + "nodeType": "Return", + "src": "4166:11:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "3697:296:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4007:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4023:7:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4015:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4015:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "value", + "nameLocation": "4040:5:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4032:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:32:1" + }, + "returnParameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4071:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4071:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4070:6:1" + }, + "scope": 651, + "src": "3998:186:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 728 + ], + "body": { + "id": 333, + "nodeType": "Block", + "src": "4869:151:1", + "statements": [ + { + "assignments": [ + 315 + ], + "declarations": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4887:7:1", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "4879:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 316, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4897:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4897:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 320, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 321, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "4941:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4950:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 319, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "4919:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 324, + "nodeType": "ExpressionStatement", + "src": "4919:37:1" + }, + { + "expression": { + "arguments": [ + { + "id": 326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4976:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 327, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "4982:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4986:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 325, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4966:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "4966:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5009:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 313, + "id": 332, + "nodeType": "Return", + "src": "5002:11:1" + } + ] + }, + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "4190:581:1", + "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4785:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "from", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4798:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4798:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "to", + "nameLocation": "4820:2:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4812:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "value", + "nameLocation": "4832:5:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4824:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4824:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:41:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 311, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4862:6:1" + }, + "scope": 651, + "src": "4776:244:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 380, + "nodeType": "Block", + "src": "5462:231:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5476:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5484:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5484:7:1", + "typeDescriptions": {} + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5476:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 358, + "nodeType": "IfStatement", + "src": "5472:86:1", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "5496:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5544:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5536:7:1", + "typeDescriptions": {} + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 350, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "5517:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "RevertStatement", + "src": "5510:37:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5571:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5577:7:1", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5577:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5571:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 373, + "nodeType": "IfStatement", + "src": "5567:86:1", + "trueBody": { + "id": 372, + "nodeType": "Block", + "src": "5589:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5631:7:1", + "typeDescriptions": {} + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5631:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 365, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5610:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5610:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "RevertStatement", + "src": "5603:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 375, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5670:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 376, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5676:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "5680:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 374, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "5662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5662:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "5662:24:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "5026:362:1", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5402:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "from", + "nameLocation": "5420:4:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5412:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5412:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "to", + "nameLocation": "5434:2:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5426:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5426:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "value", + "nameLocation": "5446:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5438:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5411:41:1" + }, + "returnParameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5462:0:1" + }, + "scope": 651, + "src": "5393:300:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "6083:1032:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6113:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6105:7:1", + "typeDescriptions": {} + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6097:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 428, + "nodeType": "Block", + "src": "6271:362:1", + "statements": [ + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6293:11:1", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6285:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 407, + "initialValue": { + "baseExpression": { + "id": 404, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 406, + "indexExpression": { + "id": 405, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6307:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6285:37:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 408, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6354:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6340:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 418, + "nodeType": "IfStatement", + "src": "6336:115:1", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "6361:90:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 412, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6411:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 413, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6430:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "6386:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6386:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "RevertStatement", + "src": "6379:57:1" + } + ] + } + }, + { + "id": 427, + "nodeType": "UncheckedBlock", + "src": "6464:159:1", + "statements": [ + { + "expression": { + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 419, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6581:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6571:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6589:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6589:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6571:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "6571:37:1" + } + ] + } + ] + }, + "id": 429, + "nodeType": "IfStatement", + "src": "6093:540:1", + "trueBody": { + "id": 401, + "nodeType": "Block", + "src": "6117:148:1", + "statements": [ + { + "expression": { + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 397, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6233:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6249:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6233:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "6233:21:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 430, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "6647:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6653:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:1", + "typeDescriptions": {} + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6647:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 449, + "nodeType": "Block", + "src": "6862:206:1", + "statements": [ + { + "id": 448, + "nodeType": "UncheckedBlock", + "src": "6876:182:1", + "statements": [ + { + "expression": { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 442, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "7021:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 444, + "indexExpression": { + "id": 443, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7021:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7038:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7021:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "7021:22:1" + } + ] + } + ] + }, + "id": 450, + "nodeType": "IfStatement", + "src": "6643:425:1", + "trueBody": { + "id": 441, + "nodeType": "Block", + "src": "6665:191:1", + "statements": [ + { + "id": 440, + "nodeType": "UncheckedBlock", + "src": "6679:167:1", + "statements": [ + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6810:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6826:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6810:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "6810:21:1" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 452, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "7092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 453, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7098:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7102:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 451, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "7083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7083:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "EmitStatement", + "src": "7078:30:1" + } + ] + }, + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "5699:304:1", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6017:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "from", + "nameLocation": "6033:4:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6025:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "to", + "nameLocation": "6047:2:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6039:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "value", + "nameLocation": "6059:5:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6024:41:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "6083:0:1" + }, + "scope": 651, + "src": "6008:1107:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 490, + "nodeType": "Block", + "src": "7514:152:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 466, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7547:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:1", + "typeDescriptions": {} + } + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7539:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7528:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 480, + "nodeType": "IfStatement", + "src": "7524:91:1", + "trueBody": { + "id": 479, + "nodeType": "Block", + "src": "7551:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7593:7:1", + "typeDescriptions": {} + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7593:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 472, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "7572:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7572:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "RevertStatement", + "src": "7565:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7640:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7632:7:1", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7632:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "7653:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 481, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "7624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7624:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "7624:35:1" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "7121:332:1", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7467:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "account", + "nameLocation": "7481:7:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7473:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "value", + "nameLocation": "7498:5:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7490:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7490:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7472:32:1" + }, + "returnParameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "7514:0:1" + }, + "scope": 651, + "src": "7458:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 523, + "nodeType": "Block", + "src": "8040:150:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 499, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8073:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8065:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8054:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 513, + "nodeType": "IfStatement", + "src": "8050:89:1", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "8077:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8125:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8117:7:1", + "typeDescriptions": {} + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8117:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 505, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "8098:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8098:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "RevertStatement", + "src": "8091:37:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 515, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8156:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8173:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8165:7:1", + "typeDescriptions": {} + } + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8165:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 520, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "8148:35:1" + } + ] + }, + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "7672:307:1", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "7993:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "account", + "nameLocation": "8007:7:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "7999:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7999:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "value", + "nameLocation": "8024:5:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "8016:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7998:32:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [], + "src": "8040:0:1" + }, + "scope": 651, + "src": "7984:206:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 541, + "nodeType": "Block", + "src": "8800:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "8819:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 536, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "8826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "8835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8842:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 534, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "8810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8810:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "8810:37:1" + } + ] + }, + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "8196:525:1", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 542, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8735:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8752:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8744:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8744:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8767:7:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8759:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "value", + "nameLocation": "8784:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8776:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8776:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8743:47:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "8800:0:1" + }, + "scope": 651, + "src": "8726:128:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 601, + "nodeType": "Block", + "src": "9799:334:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 554, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "9813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9830:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9822:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9822:7:1", + "typeDescriptions": {} + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9813:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 568, + "nodeType": "IfStatement", + "src": "9809:89:1", + "trueBody": { + "id": 567, + "nodeType": "Block", + "src": "9834:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9876:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9876:7:1", + "typeDescriptions": {} + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9876:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 560, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9855:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9855:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 566, + "nodeType": "RevertStatement", + "src": "9848:39:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 569, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "9911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:1", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9911:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "IfStatement", + "src": "9907:90:1", + "trueBody": { + "id": 582, + "nodeType": "Block", + "src": "9934:63:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:1", + "typeDescriptions": {} + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 575, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "9955:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9955:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 581, + "nodeType": "RevertStatement", + "src": "9948:38:1" + } + ] + } + }, + { + "expression": { + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 584, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "10006:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 587, + "indexExpression": { + "id": 585, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10018:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10006:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 588, + "indexExpression": { + "id": 586, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10006:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10036:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10006:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "10006:35:1" + }, + { + "condition": { + "id": 592, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "10055:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 600, + "nodeType": "IfStatement", + "src": "10051:76:1", + "trueBody": { + "id": 599, + "nodeType": "Block", + "src": "10066:61:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 594, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10094:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 595, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 593, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10085:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "EmitStatement", + "src": "10080:36:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "8860:836:1", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9710:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9727:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9719:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9719:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9742:7:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9734:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9734:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "value", + "nameLocation": "9759:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9751:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "9771:9:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9766:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 550, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9766:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9718:63:1" + }, + "returnParameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [], + "src": "9799:0:1" + }, + "scope": 651, + "src": "9701:432:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "10504:388:1", + "statements": [ + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10522:16:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "10514:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10558:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "10541:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10541:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10514:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 619, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10580:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10605:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10600:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10614:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10600:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10580:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 648, + "nodeType": "IfStatement", + "src": "10576:310:1", + "trueBody": { + "id": 647, + "nodeType": "Block", + "src": "10619:267:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10637:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10656:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10637:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 636, + "nodeType": "IfStatement", + "src": "10633:130:1", + "trueBody": { + "id": 635, + "nodeType": "Block", + "src": "10663:100:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 630, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 631, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10742:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "10688:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10688:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "RevertStatement", + "src": "10681:67:1" + } + ] + } + }, + { + "id": 646, + "nodeType": "UncheckedBlock", + "src": "10776:100:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 638, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 639, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10820:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 640, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10829:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10848:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10855:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 637, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "10804:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10804:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "10804:57:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 603, + "nodeType": "StructuredDocumentation", + "src": "10139:271:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10424:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10448:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10440:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10440:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10463:7:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10455:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10455:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "value", + "nameLocation": "10480:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10472:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10439:47:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [], + "src": "10504:0:1" + }, + "scope": 651, + "src": "10415:477:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 652, + "src": "1106:9788:1", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "105:10790:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ] + }, + "id": 730, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "132:71:2", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 729, + "linearizedBaseContracts": [ + 729 + ], + "name": "IERC20", + "nameLocation": "214:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "227:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 663, + "name": "Transfer", + "nameLocation": "396:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "405:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "427:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "447:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:2" + }, + "src": "390:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 664, + "nodeType": "StructuredDocumentation", + "src": "468:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 672, + "name": "Approval", + "nameLocation": "627:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 666, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "636:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "659:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "684:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:2" + }, + "src": "621:78:2" + }, + { + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "705:65:2", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:2" + }, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 678, + "src": "821:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:2" + }, + "scope": 729, + "src": "775:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "836:71:2", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 729, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "986:213:2", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1222:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1234:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1267:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:2" + }, + "scope": 729, + "src": "1204:69:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1279:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1567:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1582:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:2" + }, + "returnParameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1622:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:2" + }, + "scope": 729, + "src": "1548:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 707, + "nodeType": "StructuredDocumentation", + "src": "1637:667:2", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 716, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2326:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2343:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:2" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2376:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 713, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:2" + }, + "scope": 729, + "src": "2309:73:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 717, + "nodeType": "StructuredDocumentation", + "src": "2388:297:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2712:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2726:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2738:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:2" + }, + "returnParameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2771:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 725, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:2" + }, + "scope": 729, + "src": "2690:87:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 730, + "src": "204:2575:2", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "106:2674:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 731, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 733, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 756, + "sourceUnit": 730, + "src": "151:37:3", + "symbolAliases": [ + { + "foreign": { + "id": 732, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "159:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 735, + "name": "IERC20", + "nameLocations": [ + "306:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "306:6:3" + }, + "id": 736, + "nodeType": "InheritanceSpecifier", + "src": "306:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "190:87:3", + "text": " @dev Interface for the optional metadata functions from the ERC-20 standard." + }, + "fullyImplemented": false, + "id": 755, + "linearizedBaseContracts": [ + 755, + 729 + ], + "name": "IERC20Metadata", + "nameLocation": "288:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 737, + "nodeType": "StructuredDocumentation", + "src": "319:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "387:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "417:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 739, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "417:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "416:15:3" + }, + "scope": 755, + "src": "378:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 743, + "nodeType": "StructuredDocumentation", + "src": "438:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "508:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [], + "src": "514:2:3" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "540:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "539:15:3" + }, + "scope": 755, + "src": "499:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 749, + "nodeType": "StructuredDocumentation", + "src": "561:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "640:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "648:2:3" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "674:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "673:7:3" + }, + "scope": 755, + "src": "631:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 756, + "src": "278:405:3", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "125:559:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 785 + ] + }, + "id": 786, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "127:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 785, + "linearizedBaseContracts": [ + 785 + ], + "name": "Context", + "nameLocation": "642:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "718:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 763, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 762, + "id": 765, + "nodeType": "Return", + "src": "728:17:4" + } + ] + }, + "id": 767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:4" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "709:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:4" + }, + "scope": 785, + "src": "656:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "825:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 771, + "id": 774, + "nodeType": "Return", + "src": "835:15:4" + } + ] + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:4" + }, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "809:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 769, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:4" + }, + "scope": 785, + "src": "758:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 783, + "nodeType": "Block", + "src": "935:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 780, + "id": 782, + "nodeType": "Return", + "src": "945:8:4" + } + ] + }, + "id": 784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:4" + }, + "returnParameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 784, + "src": "926:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:4" + }, + "scope": 785, + "src": "863:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 786, + "src": "624:338:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:4" + }, + "id": 4 + }, + "contracts/core/Factory.sol": { + "ast": { + "absolutePath": "contracts/core/Factory.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "IPool": [ + 2166 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory": [ + 1019 + ], + "PoolFactory__IdenticalAddress": [ + 791 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ], + "PoolFactory__NotSetter": [ + 797 + ], + "PoolFactory__PoolExists": [ + 795 + ], + "PoolFactory__ZeroAddress": [ + 793 + ] + }, + "id": 1020, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 787, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 788, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2167, + "src": "60:32:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Pool.sol", + "file": "./Pool.sol", + "id": 789, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2104, + "src": "94:20:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "4bea99d9", + "id": 791, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "124:29:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [], + "src": "153:2:5" + }, + "src": "118:38:5" + }, + { + "errorSelector": "74b959e9", + "id": 793, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "164:24:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:5" + }, + "src": "158:33:5" + }, + { + "errorSelector": "423d7935", + "id": 795, + "name": "PoolFactory__PoolExists", + "nameLocation": "199:23:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:5" + }, + "src": "193:32:5" + }, + { + "errorSelector": "e9e17318", + "id": 797, + "name": "PoolFactory__NotSetter", + "nameLocation": "233:22:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "255:2:5" + }, + "src": "227:31:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoolFactory", + "contractDependencies": [ + 2103 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1019, + "linearizedBaseContracts": [ + 1019 + ], + "name": "PoolFactory", + "nameLocation": "271:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "feeReceiver", + "nameLocation": "306:11:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "290:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "290:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 803, + "mutability": "mutable", + "name": "feeReceiverSetter", + "nameLocation": "357:17:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "324:50:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 802, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "324:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "343:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 809, + "mutability": "mutable", + "name": "getPairs", + "nameLocation": "439:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "383:64:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 808, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "383:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 807, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "410:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "402:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "421:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "allPairs", + "nameLocation": "472:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "454:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 811, + "nodeType": "ArrayTypeName", + "src": "454:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b", + "id": 820, + "name": "PoolCreated", + "nameLocation": "495:11:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": false, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "515:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "507:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "507:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": false, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "531:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "523:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "547:11:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "539:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "506:53:5" + }, + "src": "489:71:5" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "608:63:5", + "statements": [ + { + "expression": { + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "619:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 822, + "src": "637:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "619:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "619:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 830, + "nodeType": "ExpressionStatement", + "src": "619:44:5" + } + ] + }, + "id": 832, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "588:18:5", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "580:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "579:28:5" + }, + "returnParameters": { + "id": 824, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:0:5" + }, + "scope": 1019, + "src": "568:103:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "795:978:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 841, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "810:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 842, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "820:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "810:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 847, + "nodeType": "IfStatement", + "src": "806:60:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 844, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "835:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "835:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 846, + "nodeType": "RevertStatement", + "src": "828:38:5" + } + }, + { + "assignments": [ + 849, + 851 + ], + "declarations": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "token0", + "nameLocation": "886:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "878:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "878:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "token1", + "nameLocation": "902:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "894:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "894:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 862, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "912:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 853, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "921:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "912:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 858, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "976:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 859, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "984:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 860, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "975:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "912:79:5", + "trueExpression": { + "components": [ + { + "id": 855, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "944:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "952:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "877:114:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1089:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:5", + "typeDescriptions": {} + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1089:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 872, + "nodeType": "IfStatement", + "src": "1085:59:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 869, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "1118:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1118:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "RevertStatement", + "src": "1111:33:5" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "id": 873, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1159:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 875, + "indexExpression": { + "id": 874, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 877, + "indexExpression": { + "id": 876, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1195:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1187:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1187:7:5", + "typeDescriptions": {} + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1187:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1159:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 886, + "nodeType": "IfStatement", + "src": "1155:89:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 883, + "name": "PoolFactory__PoolExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "1219:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "RevertStatement", + "src": "1212:32:5" + } + }, + { + "assignments": [ + 888 + ], + "declarations": [ + { + "constant": false, + "id": 888, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "1270:8:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1257:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1257:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 893, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 890, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1286:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + ], + "id": 889, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1281:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1281:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103", + "typeString": "type(contract Pool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1292:12:5", + "memberName": "creationCode", + "nodeType": "MemberAccess", + "src": "1281:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1257:47:5" + }, + { + "assignments": [ + 895 + ], + "declarations": [ + { + "constant": false, + "id": 895, + "mutability": "mutable", + "name": "salt", + "nameLocation": "1323:4:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1315:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1315:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 903, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 899, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1357:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 900, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 897, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1340:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1344:12:5", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1340:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1340:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 896, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1330:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1330:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1315:58:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1427:93:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1442:67:5", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1465:1:5", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1472:8:5" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1482:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1468:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "1468:17:5" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1493:8:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1487:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "1487:15:5" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "1504:4:5" + } + ], + "functionName": { + "name": "create2", + "nodeType": "YulIdentifier", + "src": "1457:7:5" + }, + "nodeType": "YulFunctionCall", + "src": "1457:52:5" + }, + "variableNames": [ + { + "name": "poolAddress", + "nodeType": "YulIdentifier", + "src": "1442:11:5" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1472:8:5", + "valueSize": 1 + }, + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1493:8:5", + "valueSize": 1 + }, + { + "declaration": 839, + "isOffset": false, + "isSlot": false, + "src": "1442:11:5", + "valueSize": 1 + }, + { + "declaration": 895, + "isOffset": false, + "isSlot": false, + "src": "1504:4:5", + "valueSize": 1 + } + ], + "id": 904, + "nodeType": "InlineAssembly", + "src": "1418:102:5" + }, + { + "expression": { + "arguments": [ + { + "id": 909, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1555:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 910, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1563:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 906, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1537:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 905, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1532:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1550:4:5", + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 1683, + "src": "1532:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 912, + "nodeType": "ExpressionStatement", + "src": "1532:38:5" + }, + { + "expression": { + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 913, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1583:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 917, + "indexExpression": { + "id": 915, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1600:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1583:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 918, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1610:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1583:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 920, + "nodeType": "ExpressionStatement", + "src": "1583:38:5" + }, + { + "expression": { + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 921, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1632:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 924, + "indexExpression": { + "id": 922, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1641:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1632:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 925, + "indexExpression": { + "id": 923, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1649:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1632:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 926, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1659:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1632:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "1632:38:5" + }, + { + "expression": { + "arguments": [ + { + "id": 932, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1695:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 929, + "name": "allPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 812, + "src": "1681:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1690:4:5", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "1681:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1681:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1681:26:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 936, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1737:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 937, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1745:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 938, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1753:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 935, + "name": "PoolCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "1725:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1725:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 940, + "nodeType": "EmitStatement", + "src": "1720:45:5" + } + ] + }, + "functionSelector": "e3433615", + "id": 942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "688:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "717:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "709:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "742:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "734:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "734:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "698:57:5" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "782:11:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "774:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "773:21:5" + }, + "scope": 1019, + "src": "679:1094:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "1895:52:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 951, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1913:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 953, + "indexExpression": { + "id": 952, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "1922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 955, + "indexExpression": { + "id": 954, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1931:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 950, + "id": 956, + "nodeType": "Return", + "src": "1906:33:5" + } + ] + }, + "functionSelector": "4a70f02e", + "id": 958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "1790:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "1822:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1814:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1814:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "1848:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1840:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1840:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1803:59:5" + }, + "returnParameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1886:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1885:9:5" + }, + "scope": 1019, + "src": "1781:166:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 970, + "nodeType": "Block", + "src": "2010:73:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 963, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2021:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2021:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "2021:15:5" + }, + { + "expression": { + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 966, + "name": "feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "2049:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 967, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "2063:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2049:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 969, + "nodeType": "ExpressionStatement", + "src": "2049:26:5" + } + ] + }, + "functionSelector": "efdcd974", + "id": 971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeReceiver", + "nameLocation": "1964:14:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "1987:12:5", + "nodeType": "VariableDeclaration", + "scope": 971, + "src": "1979:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1979:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1978:22:5" + }, + "returnParameters": { + "id": 962, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:0:5" + }, + "scope": 1019, + "src": "1955:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 985, + "nodeType": "Block", + "src": "2160:91:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 976, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2171:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2171:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "2171:15:5" + }, + { + "expression": { + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 979, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2199:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 981, + "indexExpression": { + "id": 980, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "2217:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2199:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2239:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2199:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "2199:44:5" + } + ] + }, + "functionSelector": "5ac40ab3", + "id": 986, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addToFeeReceiverSetter", + "nameLocation": "2100:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2131:18:5", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "2123:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:28:5" + }, + "returnParameters": { + "id": 975, + "nodeType": "ParameterList", + "parameters": [], + "src": "2160:0:5" + }, + "scope": 1019, + "src": "2091:160:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "2333:92:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 991, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2344:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 993, + "nodeType": "ExpressionStatement", + "src": "2344:15:5" + }, + { + "expression": { + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 994, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2372:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 996, + "indexExpression": { + "id": 995, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 988, + "src": "2390:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2372:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2412:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2372:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "ExpressionStatement", + "src": "2372:45:5" + } + ] + }, + "functionSelector": "48397023", + "id": 1001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeFromFeeReceiverSetter", + "nameLocation": "2268:27:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 988, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2304:18:5", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "2296:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2296:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2295:28:5" + }, + "returnParameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2333:0:5" + }, + "scope": 1019, + "src": "2259:166:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "2472:121:5", + "statements": [ + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "ifSetter", + "nameLocation": "2488:8:5", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "2483:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1004, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2483:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1010, + "initialValue": { + "baseExpression": { + "id": 1006, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2499:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1009, + "indexExpression": { + "expression": { + "id": 1007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2517:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2521:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2517:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2499:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2483:45:5" + }, + { + "condition": { + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2543:9:5", + "subExpression": { + "id": 1011, + "name": "ifSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2544:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1016, + "nodeType": "IfStatement", + "src": "2539:46:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1013, + "name": "PoolFactory__NotSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "2561:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2561:24:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1015, + "nodeType": "RevertStatement", + "src": "2554:31:5" + } + } + ] + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkIfSetter", + "nameLocation": "2442:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1002, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:5" + }, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2472:0:5" + }, + "scope": 1019, + "src": "2433:160:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1020, + "src": "262:2334:5", + "usedErrors": [ + 791, + 793, + 795, + 797 + ], + "usedEvents": [ + 820 + ] + } + ], + "src": "33:2563:5" + }, + "id": 5 + }, + "contracts/core/LiquidityProvider.sol": { + "ast": { + "absolutePath": "contracts/core/LiquidityProvider.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "IERC20": [ + 729 + ], + "IFactory": [ + 2124 + ], + "IPool": [ + 2166 + ], + "IWEDU": [ + 2186 + ], + "LiquidityProvider": [ + 1537 + ], + "LiquidityProvider__EDUTransferFailed": [ + 1032 + ], + "LiquidityProvider__InsufficientAmount": [ + 1028 + ], + "LiquidityProvider__InsufficientOutputAmount": [ + 1030 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 1538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1021, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1022, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 730, + "src": "120:56:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "file": "./interfaces/IFactory.sol", + "id": 1023, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2125, + "src": "178:35:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 1024, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2167, + "src": "215:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "file": "./interfaces/IWedu.sol", + "id": 1025, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2187, + "src": "249:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/libraries/Library.sol", + "file": "./libraries/Library.sol", + "id": 1026, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2296, + "src": "283:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "d0368649", + "id": 1028, + "name": "LiquidityProvider__InsufficientAmount", + "nameLocation": "326:37:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [], + "src": "363:2:6" + }, + "src": "320:46:6" + }, + { + "errorSelector": "dec0fbbe", + "id": 1030, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nameLocation": "374:43:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:6" + }, + "src": "368:52:6" + }, + { + "errorSelector": "0221f34c", + "id": 1032, + "name": "LiquidityProvider__EDUTransferFailed", + "nameLocation": "428:36:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1031, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:6" + }, + "src": "422:45:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LiquidityProvider", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1537, + "linearizedBaseContracts": [ + 1537 + ], + "name": "LiquidityProvider", + "nameLocation": "480:17:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1034, + "mutability": "immutable", + "name": "factoryAddress", + "nameLocation": "531:14:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "505:40:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1036, + "mutability": "immutable", + "name": "WEDU", + "nameLocation": "578:4:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "552:30:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1051, + "nodeType": "Block", + "src": "643:74:6", + "statements": [ + { + "expression": { + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1043, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "654:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1044, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1038, + "src": "671:15:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:32:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "654:32:6" + }, + { + "expression": { + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1047, + "name": "WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1036, + "src": "697:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1048, + "name": "_WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "704:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "697:12:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "697:12:6" + } + ] + }, + "id": 1052, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1038, + "mutability": "mutable", + "name": "_factoryAddress", + "nameLocation": "611:15:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "603:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "mutability": "mutable", + "name": "_WEDU", + "nameLocation": "636:5:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "628:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "602:40:6" + }, + "returnParameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:6" + }, + "scope": 1537, + "src": "591:126:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1184, + "nodeType": "Block", + "src": "995:1414:6", + "statements": [ + { + "assignments": [ + 1072 + ], + "declarations": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "pair", + "nameLocation": "1014:4:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1006:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "arguments": [ + { + "id": 1077, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1074, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1021:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1046:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1021:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1006:71:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1108:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1100:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1100:7:6", + "typeDescriptions": {} + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1100:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1092:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "1088:97:6", + "trueBody": { + "expression": { + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1087, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1125:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1092, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1168:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1093, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1177:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1089, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1141:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1088, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1132:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1157:10:6", + "memberName": "createPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2123, + "src": "1132:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:60:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1125:60:6" + } + }, + { + "assignments": [ + 1099, + 1101 + ], + "declarations": [ + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "1207:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1199:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1199:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1101, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "1225:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1217:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1107, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1103, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1102, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "1237:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1249:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "1237:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1198:69:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1108, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1284:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1111, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1301:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1313:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1301:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:30:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1182, + "nodeType": "Block", + "src": "1416:986:6", + "statements": [ + { + "assignments": [ + 1125 + ], + "declarations": [ + { + "constant": false, + "id": 1125, + "mutability": "mutable", + "name": "optimalAmountOfTokenB", + "nameLocation": "1439:21:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1431:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1431:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1131, + "initialValue": { + "arguments": [ + { + "id": 1127, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1487:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1128, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1527:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1129, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1126, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1463:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1463:114:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:146:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1132, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1596:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1133, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1621:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1596:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1180, + "nodeType": "Block", + "src": "1938:453:6", + "statements": [ + { + "assignments": [ + 1152 + ], + "declarations": [ + { + "constant": false, + "id": 1152, + "mutability": "mutable", + "name": "amountAOptimal", + "nameLocation": "1965:14:6", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "1957:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1154, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2010:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1155, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "2054:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1156, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "2085:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1153, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1982:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:130:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1957:155:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2138:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1161, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "2156:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2138:39:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1159, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2131:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2131:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "ExpressionStatement", + "src": "2131:47:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1165, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2201:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1166, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "2218:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2201:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1171, + "nodeType": "IfStatement", + "src": "2197:99:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1168, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "2257:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2257:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1170, + "nodeType": "RevertStatement", + "src": "2250:46:6" + } + }, + { + "expression": { + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1172, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "2316:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1173, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "2325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1174, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2315:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1175, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2337:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1176, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:39:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2315:60:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "2315:60:6" + } + ] + }, + "id": 1181, + "nodeType": "IfStatement", + "src": "1592:799:6", + "trueBody": { + "id": 1150, + "nodeType": "Block", + "src": "1644:288:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1135, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1667:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1136, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1691:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1141, + "nodeType": "IfStatement", + "src": "1663:106:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1138, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "1730:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1730:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1140, + "nodeType": "RevertStatement", + "src": "1723:46:6" + } + }, + { + "expression": { + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1142, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1789:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1143, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1144, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1788:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1145, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1832:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1146, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1147, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1809:107:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1788:128:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1149, + "nodeType": "ExpressionStatement", + "src": "1788:128:6" + } + ] + } + } + ] + }, + "id": 1183, + "nodeType": "IfStatement", + "src": "1280:1122:6", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "1316:94:6", + "statements": [ + { + "expression": { + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1115, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1332:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1116, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1117, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1331:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1118, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1119, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1376:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1120, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1352:46:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1331:67:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "1331:67:6" + } + ] + } + } + ] + }, + "id": 1185, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLiquidity", + "nameLocation": "734:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "766:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "758:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1053, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "758:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1056, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "792:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "784:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1058, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "818:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "810:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "858:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "850:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "850:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "898:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "890:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "926:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "918:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "918:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "747:195:6" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "969:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "961:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "986:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "978:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "960:34:6" + }, + "scope": 1537, + "src": "725:1684:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "2703:487:6", + "statements": [ + { + "expression": { + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1206, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "2715:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1207, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "2724:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1208, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2714:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1210, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2763:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1211, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2784:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1212, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "2805:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1213, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2841:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1214, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1195, + "src": "2877:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1215, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2901:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1209, + "name": "_addLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "2735:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:186:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2714:207:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1218, + "nodeType": "ExpressionStatement", + "src": "2714:207:6" + }, + { + "assignments": [ + 1220 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "pair", + "nameLocation": "2940:4:6", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "2932:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2932:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2994:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1222, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2956:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1221, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "2947:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2972:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "2947:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2932:69:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1233, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3040:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3044:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3040:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3052:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1236, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "3058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1230, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "3019:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3027:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3012:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1238, + "nodeType": "ExpressionStatement", + "src": "3012:54:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3105:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3105:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1245, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3117:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1246, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "3123:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1240, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "3084:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1239, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3077:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3092:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3077:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "3077:54:6" + }, + { + "expression": { + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1249, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "3142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1254, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3171:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3171:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1251, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3160:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1250, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3154:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3166:4:6", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2140, + "src": "3154:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3142:40:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1258, + "nodeType": "ExpressionStatement", + "src": "3142:40:6" + } + ] + }, + "functionSelector": "3351733f", + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "2426:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1187, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "2457:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2449:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2449:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1189, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "2482:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2474:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "2507:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2499:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "2547:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2539:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "2587:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2579:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "2615:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2607:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2438:193:6" + }, + "returnParameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2658:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2650:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2650:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2675:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2667:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2667:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2692:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2684:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2684:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2649:53:6" + }, + "scope": 1537, + "src": "2417:773:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1349, + "nodeType": "Block", + "src": "4116:531:6", + "statements": [ + { + "body": { + "id": 1347, + "nodeType": "Block", + "src": "4166:474:6", + "statements": [ + { + "assignments": [ + 1286, + 1288 + ], + "declarations": [ + { + "constant": false, + "id": 1286, + "mutability": "mutable", + "name": "input", + "nameLocation": "4190:5:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4182:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4182:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "output", + "nameLocation": "4205:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4197:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4197:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1298, + "initialValue": { + "components": [ + { + "baseExpression": { + "id": 1289, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4216:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1291, + "indexExpression": { + "id": 1290, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4221:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4216:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1292, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4225:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1296, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4230:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4230:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4215:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4181:56:6" + }, + { + "assignments": [ + 1300, + null + ], + "declarations": [ + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "token0", + "nameLocation": "4261:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4253:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1306, + "initialValue": { + "arguments": [ + { + "id": 1303, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1304, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "4303:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1301, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "4273:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4285:10:6", + "memberName": "sortTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 2236, + "src": "4273:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", + "typeString": "function (address,address) pure returns (address,address)" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4273:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4252:58:6" + }, + { + "assignments": [ + 1308 + ], + "declarations": [ + { + "constant": false, + "id": 1308, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "4333:9:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4325:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1314, + "initialValue": { + "baseExpression": { + "id": 1309, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4345:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1313, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4353:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4357:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4345:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4325:34:6" + }, + { + "assignments": [ + 1316, + 1318 + ], + "declarations": [ + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "4383:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4375:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "4403:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4395:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1335, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1319, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4417:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1320, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "4426:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4417:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4504:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4496:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:6", + "typeDescriptions": {} + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4496:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1332, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4508:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1333, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4495:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 1334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4417:101:6", + "trueExpression": { + "components": [ + { + "id": 1322, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4453:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4472:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4464:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4464:7:6", + "typeDescriptions": {} + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4464:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1327, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4452:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4374:144:6" + }, + { + "documentation": "TODO: In case of multiple hops ", + "expression": { + "arguments": [ + { + "id": 1340, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4601:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 1341, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1343, + "indexExpression": { + "id": 1342, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4620:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4612:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1344, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1270, + "src": "4624:3:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1337, + "name": "_pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1268, + "src": "4589:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1336, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "4583:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4596:4:6", + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 2165, + "src": "4583:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address) external" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1346, + "nodeType": "ExpressionStatement", + "src": "4583:45:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1276, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4140:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1277, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4144:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4149:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4158:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4144:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4140:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1348, + "initializationExpression": { + "assignments": [ + 1274 + ], + "declarations": [ + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "i", + "nameLocation": "4137:1:6", + "nodeType": "VariableDeclaration", + "scope": 1348, + "src": "4132:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1273, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4132:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1275, + "nodeType": "VariableDeclarationStatement", + "src": "4132:6:6" + }, + "loopExpression": { + "expression": { + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4161:3:6", + "subExpression": { + "id": 1282, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4161:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "4161:3:6" + }, + "nodeType": "ForStatement", + "src": "4127:513:6" + } + ] + }, + "id": 1350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "3981:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4014:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "3997:24:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1262, + "nodeType": "ArrayTypeName", + "src": "3997:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1266, + "mutability": "mutable", + "name": "path", + "nameLocation": "4049:4:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4032:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4032:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1265, + "nodeType": "ArrayTypeName", + "src": "4032:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1268, + "mutability": "mutable", + "name": "_pair", + "nameLocation": "4072:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4064:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4064:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "_to", + "nameLocation": "4096:3:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4088:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3986:120:6" + }, + "returnParameters": { + "id": 1272, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:6" + }, + "scope": 1537, + "src": "3972:675:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1420, + "nodeType": "Block", + "src": "4899:392:6", + "statements": [ + { + "assignments": [ + 1365 + ], + "declarations": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "pair", + "nameLocation": "4918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "4910:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1377, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1370, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1372, + "indexExpression": { + "hexValue": "30", + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4964:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1373, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4973:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1375, + "indexExpression": { + "hexValue": "31", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4978:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4973:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1367, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "4934:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1366, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "4925:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4950:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "4925:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4910:71:6" + }, + { + "expression": { + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1378, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "4994:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1380, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1381, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "5024:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1382, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5034:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 1379, + "name": "getAmountsOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "5004:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5004:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4994:45:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1385, + "nodeType": "ExpressionStatement", + "src": "4994:45:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1386, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5054:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1391, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1387, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5062:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5070:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5062:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5062:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5054:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1392, + "name": "amountOutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "5084:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1397, + "nodeType": "IfStatement", + "src": "5050:113:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1394, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "5118:43:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5118:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1396, + "nodeType": "RevertStatement", + "src": "5111:52:6" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5205:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5209:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5205:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5217:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1407, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5223:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1409, + "indexExpression": { + "hexValue": "30", + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5223:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1399, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5183:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1401, + "indexExpression": { + "hexValue": "30", + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5183:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1398, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "5176:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5192:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "5176:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "5176:58:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1413, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5251:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1414, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5260:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 1415, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5266:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5272:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5276:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5272:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "5245:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[] memory,address[] memory,address,address)" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "5245:38:6" + } + ] + }, + "functionSelector": "86818f26", + "id": 1421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "4664:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4704:8:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4699:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1351, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4699:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1354, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4728:12:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4723:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4723:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "path", + "nameLocation": "4770:4:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4751:23:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4751:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1356, + "nodeType": "ArrayTypeName", + "src": "4751:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4688:93:6" + }, + "returnParameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4875:7:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4861:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4861:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1361, + "nodeType": "ArrayTypeName", + "src": "4861:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4817:76:6" + }, + "scope": 1537, + "src": "4655:636:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1459, + "nodeType": "Block", + "src": "5429:265:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1433, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5448:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5448:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5461:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + }, + "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + } + ], + "id": 1432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5440:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5440:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "5440:65:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1440, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5538:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5549:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5538:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1443, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5565:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5554:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5538:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5581:42:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 1439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5516:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5516:118:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1449, + "nodeType": "ExpressionStatement", + "src": "5516:118:6" + }, + { + "expression": { + "id": 1457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1450, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1451, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1452, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5666:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5656:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5655:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1455, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5678:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5655:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5645:41:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1458, + "nodeType": "ExpressionStatement", + "src": "5645:41:6" + } + ] + }, + "id": 1460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "5308:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1423, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "5329:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5324:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5324:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1425, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "5352:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5347:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1424, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1427, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "5376:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5371:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1426, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5371:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5313:78:6" + }, + "returnParameters": { + "id": 1431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1430, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "5420:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5415:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:14:6" + }, + "scope": 1537, + "src": "5299:395:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1535, + "nodeType": "Block", + "src": "5923:453:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1474, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "5942:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5947:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5942:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "32", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5942:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "id": 1478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5960:32:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + }, + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + } + ], + "id": 1473, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:59:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "ExpressionStatement", + "src": "5934:59:6" + }, + { + "expression": { + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1481, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6004:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1485, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6030:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6025:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6014:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1483, + "nodeType": "ArrayTypeName", + "src": "6018:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6014:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "6004:33:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1489, + "nodeType": "ExpressionStatement", + "src": "6004:33:6" + }, + { + "expression": { + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1490, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1492, + "indexExpression": { + "hexValue": "30", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6048:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1493, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "6061:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6048:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "6048:21:6" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6119:250:6", + "statements": [ + { + "assignments": [ + 1509, + 1511 + ], + "declarations": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "6140:9:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6135:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6135:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1511, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "6156:10:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6151:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1510, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6151:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1513, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "6176:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1512, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "6170:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6182:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "6170:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6134:66:6" + }, + { + "expression": { + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1518, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6215:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1522, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6223:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6227:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6223:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6215:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 1525, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6275:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1527, + "indexExpression": { + "id": 1526, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6283:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6275:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1529, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1511, + "src": "6332:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1523, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "6232:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6244:12:6", + "memberName": "getAmountOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "6232:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6232:125:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6215:142:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6215:142:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6093:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1500, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6097:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6102:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6097:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6111:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6097:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6093:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1534, + "initializationExpression": { + "assignments": [ + 1497 + ], + "declarations": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "i", + "nameLocation": "6090:1:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6085:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6085:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1498, + "nodeType": "VariableDeclarationStatement", + "src": "6085:6:6" + }, + "loopExpression": { + "expression": { + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6114:3:6", + "subExpression": { + "id": 1505, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6114:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "6114:3:6" + }, + "nodeType": "ForStatement", + "src": "6080:289:6" + } + ] + }, + "functionSelector": "bb7b9c76", + "id": 1536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "5779:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "pair", + "nameLocation": "5811:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5803:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5803:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "5831:8:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5826:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1467, + "mutability": "mutable", + "name": "path", + "nameLocation": "5867:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5850:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5850:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1466, + "nodeType": "ArrayTypeName", + "src": "5850:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5792:86:6" + }, + "returnParameters": { + "id": 1472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1471, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "5914:7:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5900:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5900:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1470, + "nodeType": "ArrayTypeName", + "src": "5900:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5899:23:6" + }, + "scope": 1537, + "src": "5770:606:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1538, + "src": "471:5908:6", + "usedErrors": [ + 1028, + 1030, + 2190, + 2192 + ], + "usedEvents": [] + } + ], + "src": "33:6346:6" + }, + "id": 6 + }, + "contracts/core/Math.sol": { + "ast": { + "absolutePath": "contracts/core/Math.sol", + "exportedSymbols": { + "Math": [ + 1613 + ] + }, + "id": 1614, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1539, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613 + ], + "name": "Math", + "nameLocation": "123:4:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1557, + "nodeType": "Block", + "src": "195:36:7", + "statements": [ + { + "expression": { + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1548, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "206:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1549, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "210:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1550, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "214:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "210:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1553, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "222:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "210:13:7", + "trueExpression": { + "id": 1552, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "218:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "206:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1556, + "nodeType": "ExpressionStatement", + "src": "206:17:7" + } + ] + }, + "id": 1558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "144:3:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1541, + "mutability": "mutable", + "name": "x", + "nameLocation": "153:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "148:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "148:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1543, + "mutability": "mutable", + "name": "y", + "nameLocation": "161:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "156:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "156:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "147:16:7" + }, + "returnParameters": { + "id": 1547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "z", + "nameLocation": "192:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "187:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "187:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "186:8:7" + }, + "scope": 1613, + "src": "135:96:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "402:250:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1565, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "417:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "33", + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "421:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "417:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1601, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "605:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "610:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "605:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1609, + "nodeType": "IfStatement", + "src": "601:44:7", + "trueBody": { + "id": 1608, + "nodeType": "Block", + "src": "613:32:7", + "statements": [ + { + "expression": { + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1604, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "628:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "632:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "628:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "628:5:7" + } + ] + } + }, + "id": 1610, + "nodeType": "IfStatement", + "src": "413:232:7", + "trueBody": { + "id": 1600, + "nodeType": "Block", + "src": "424:171:7", + "statements": [ + { + "expression": { + "id": 1570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1568, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "439:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1569, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "443:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "439:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1571, + "nodeType": "ExpressionStatement", + "src": "439:5:7" + }, + { + "assignments": [ + 1573 + ], + "declarations": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "x", + "nameLocation": "464:1:7", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "459:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "459:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1579, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1574, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "468:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "468:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "468:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "459:18:7" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "506:78:7", + "statements": [ + { + "expression": { + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1583, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "525:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1584, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "529:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "525:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "525:5:7" + }, + { + "expression": { + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1587, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "549:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1588, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "554:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1589, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "558:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "562:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1593, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "553:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "553:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1597, + "nodeType": "ExpressionStatement", + "src": "549:19:7" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1580, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "499:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1581, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "503:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "499:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1599, + "nodeType": "WhileStatement", + "src": "492:92:7" + } + ] + } + } + ] + }, + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "358:4:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "y", + "nameLocation": "368:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "363:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "363:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "362:8:7" + }, + "returnParameters": { + "id": 1564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1563, + "mutability": "mutable", + "name": "z", + "nameLocation": "399:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "394:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "394:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "393:8:7" + }, + "scope": 1613, + "src": "349:303:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1614, + "src": "115:540:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:622:7" + }, + "id": 7 + }, + "contracts/core/Pool.sol": { + "ast": { + "absolutePath": "contracts/core/Pool.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ] + }, + "id": 2104, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1616, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 652, + "src": "60:55:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1617, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 730, + "src": "117:56:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Math.sol", + "file": "./Math.sol", + "id": 1618, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 1614, + "src": "175:20:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "0c18a1fc", + "id": 1620, + "name": "PoolFactory__NotOwner", + "nameLocation": "205:21:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:2:8" + }, + "src": "199:30:8" + }, + { + "errorSelector": "24217e51", + "id": 1622, + "name": "PoolFactory__InsufficientLiquidity", + "nameLocation": "237:34:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [], + "src": "271:2:8" + }, + "src": "231:43:8" + }, + { + "errorSelector": "5d125c46", + "id": 1624, + "name": "PoolFactory__InsufficientFunds", + "nameLocation": "282:30:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "src": "276:39:8" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1625, + "name": "ERC20", + "nameLocations": [ + "336:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "336:5:8" + }, + "id": 1626, + "nodeType": "InheritanceSpecifier", + "src": "336:5:8" + } + ], + "canonicalName": "Pool", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2103, + "linearizedBaseContracts": [ + 2103, + 651, + 41, + 755, + 729, + 785 + ], + "name": "Pool", + "nameLocation": "328:4:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1629, + "libraryName": { + "id": 1627, + "name": "Math", + "nameLocations": [ + "355:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1613, + "src": "355:4:8" + }, + "nodeType": "UsingForDirective", + "src": "349:23:8", + "typeName": { + "id": 1628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1631, + "mutability": "immutable", + "name": "factory", + "nameLocation": "406:7:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "380:33:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "380:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "436:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "420:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "465:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "449:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 1640, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "504:17:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "480:51:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "480:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "524:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "33", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "556:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "540:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "540:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1644, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "587:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "571:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "totalLpShares", + "nameLocation": "620:13:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "604:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1658, + "nodeType": "Block", + "src": "687:39:8", + "statements": [ + { + "expression": { + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1653, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "698:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1654, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "708:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "712:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "708:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "698:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1657, + "nodeType": "ExpressionStatement", + "src": "698:20:8" + } + ] + }, + "id": 1659, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4c6971756964697479546f6b656e73", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "662:17:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0", + "typeString": "literal_string \"LiquidityTokens\"" + }, + "value": "LiquidityTokens" + }, + { + "hexValue": "4c50", + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3", + "typeString": "literal_string \"LP\"" + }, + "value": "LP" + } + ], + "id": 1651, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1648, + "name": "ERC20", + "nameLocations": [ + "656:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "656:5:8" + }, + "nodeType": "ModifierInvocation", + "src": "656:30:8" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "653:2:8" + }, + "returnParameters": { + "id": 1652, + "nodeType": "ParameterList", + "parameters": [], + "src": "687:0:8" + }, + "scope": 2103, + "src": "642:84:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1682, + "nodeType": "Block", + "src": "791:132:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1666, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "806:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1667, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "817:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "821:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "817:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "806:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "802:57:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1670, + "name": "PoolFactory__NotOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "836:21:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "836:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1672, + "nodeType": "RevertStatement", + "src": "829:30:8" + } + }, + { + "expression": { + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1674, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "872:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1675, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "881:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "872:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1677, + "nodeType": "ExpressionStatement", + "src": "872:16:8" + }, + { + "expression": { + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1678, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1679, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "908:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "899:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1681, + "nodeType": "ExpressionStatement", + "src": "899:16:8" + } + ] + }, + "functionSelector": "f09a4016", + "id": 1683, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "743:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "756:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "748:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "773:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "765:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "747:34:8" + }, + "returnParameters": { + "id": 1665, + "nodeType": "ParameterList", + "parameters": [], + "src": "791:0:8" + }, + "scope": 2103, + "src": "734:189:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "994:70:8", + "statements": [ + { + "expression": { + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1690, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "1005:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1691, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1016:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1005:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "1005:20:8" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1694, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "1036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "1047:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1036:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1036:20:8" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "940:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "956:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "948:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "948:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "967:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "967:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "947:38:8" + }, + "returnParameters": { + "id": 1689, + "nodeType": "ParameterList", + "parameters": [], + "src": "994:0:8" + }, + "scope": 2103, + "src": "931:133:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "1136:1104:8", + "statements": [ + { + "assignments": [ + 1707, + 1709 + ], + "declarations": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_reserveA", + "nameLocation": "1156:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1148:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1148:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1709, + "mutability": "mutable", + "name": "_reserveB", + "nameLocation": "1175:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1167:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1712, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1710, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "1188:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1188:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1147:59:8" + }, + { + "assignments": [ + 1714 + ], + "declarations": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "1225:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1217:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1721, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1270:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1262:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1262:7:8", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1262:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1716, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "1244:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1715, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1237:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1252:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1237:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1217:59:8" + }, + { + "assignments": [ + 1726 + ], + "declarations": [ + { + "constant": false, + "id": 1726, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "1295:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1287:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1736, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1733, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1340:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:8", + "typeDescriptions": {} + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1332:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1728, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "1314:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1727, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1307:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1322:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1307:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1287:59:8" + }, + { + "assignments": [ + 1738 + ], + "declarations": [ + { + "constant": false, + "id": 1738, + "mutability": "mutable", + "name": "depositOfTokenA", + "nameLocation": "1365:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1357:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1742, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1739, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "1383:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1740, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1395:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1383:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1357:47:8" + }, + { + "assignments": [ + 1744 + ], + "declarations": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "depositOfTokenB", + "nameLocation": "1423:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1415:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1415:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1748, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1745, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "1441:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1746, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1453:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1441:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1415:47:8" + }, + { + "assignments": [ + 1750 + ], + "declarations": [ + { + "constant": false, + "id": 1750, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1483:12:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1475:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1475:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1753, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1751, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "1498:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1498:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:36:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1754, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1526:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1542:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1526:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1796, + "nodeType": "Block", + "src": "1828:188:8", + "statements": [ + { + "expression": { + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1778, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1843:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1781, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1883:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1782, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1883:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1882:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1785, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1917:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1882:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1787, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1946:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1788, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1964:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1946:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1790, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1945:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1791, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1980:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1945:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1779, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1855:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1860:3:8", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 1558, + "src": "1855:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:149:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1843:161:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1795, + "nodeType": "ExpressionStatement", + "src": "1843:161:8" + } + ] + }, + "id": 1797, + "nodeType": "IfStatement", + "src": "1522:494:8", + "trueBody": { + "id": 1777, + "nodeType": "Block", + "src": "1545:277:8", + "statements": [ + { + "expression": { + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1757, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1560:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1760, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1599:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1761, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1617:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1599:33:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1758, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1589:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1594:4:8", + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1612, + "src": "1589:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "id": 1764, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1654:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1653:19:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1589:83:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1560:112:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "1560:112:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "31", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1693:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1693:7:8", + "typeDescriptions": {} + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1693:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1774, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1705:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1769, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "1687:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1687:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1776, + "nodeType": "ExpressionStatement", + "src": "1687:36:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1798, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2030:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2043:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2030:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1804, + "nodeType": "IfStatement", + "src": "2026:63:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1801, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "2053:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2053:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1803, + "nodeType": "RevertStatement", + "src": "2046:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "id": 1806, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "2106:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1807, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2111:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1805, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "2100:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2100:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1809, + "nodeType": "ExpressionStatement", + "src": "2100:21:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1811, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "2140:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1812, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "2151:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "2132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1814, + "nodeType": "ExpressionStatement", + "src": "2132:29:8" + } + ] + }, + "functionSelector": "6a627842", + "id": 1816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "1081:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1094:3:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1086:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1086:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1085:13:8" + }, + "returnParameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1125:9:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1117:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1116:19:8" + }, + "scope": 2103, + "src": "1072:1168:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1957, + "nodeType": "Block", + "src": "2368:1169:8", + "statements": [ + { + "assignments": [ + 1826, + 1828 + ], + "declarations": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "2388:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2380:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2380:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1828, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "2407:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2399:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1831, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1829, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "2420:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2379:59:8" + }, + { + "assignments": [ + 1833 + ], + "declarations": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "2472:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2464:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2464:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "id": 1834, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "2482:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2464:24:8" + }, + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "2522:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2514:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1839, + "initialValue": { + "id": 1838, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "2532:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2514:24:8" + }, + { + "assignments": [ + 1841 + ], + "declarations": [ + { + "constant": false, + "id": 1841, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "2569:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2564:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1851, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2614:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2606:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2606:7:8", + "typeDescriptions": {} + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1843, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "2587:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1842, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2580:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2596:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2580:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:56:8" + }, + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "2636:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2631:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2631:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1863, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1860, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2673:7:8", + "typeDescriptions": {} + } + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2673:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1855, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "2654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1854, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2647:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2663:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2647:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2631:56:8" + }, + { + "assignments": [ + 1865 + ], + "declarations": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2703:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2698:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2698:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1869, + "initialValue": { + "arguments": [ + { + "id": 1867, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "2725:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1866, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2715:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2715:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:30:8" + }, + { + "assignments": [ + 1871 + ], + "declarations": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "2749:12:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2741:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2741:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1874, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1872, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "2764:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2764:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2741:36:8" + }, + { + "expression": { + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1875, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "2866:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1876, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2877:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1877, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "2889:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2877:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2876:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1880, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "2901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2876:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1883, + "nodeType": "ExpressionStatement", + "src": "2866:47:8" + }, + { + "expression": { + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1884, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "2972:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1885, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2983:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1886, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2995:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2983:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1888, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2982:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1889, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3007:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2982:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2972:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1892, + "nodeType": "ExpressionStatement", + "src": "2972:47:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1893, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3082:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3093:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3082:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1896, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3098:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3109:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3098:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3082:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1903, + "nodeType": "IfStatement", + "src": "3078:90:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1900, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3132:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3132:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1902, + "nodeType": "RevertStatement", + "src": "3125:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1907, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3193:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3185:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3185:7:8", + "typeDescriptions": {} + } + }, + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3185:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1909, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3200:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1904, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3179:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3179:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "3179:31:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3246:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1917, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3250:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1913, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1912, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3221:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3237:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3221:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "3221:37:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1924, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3294:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1925, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3298:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1921, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3276:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1920, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3269:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3285:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3269:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "3269:37:8" + }, + { + "expression": { + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1928, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3317:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1935, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3362:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3354:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3354:7:8", + "typeDescriptions": {} + } + }, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3354:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1930, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1929, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3328:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3344:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3328:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3317:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "3317:51:8" + }, + { + "expression": { + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1940, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3379:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1947, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3424:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3416:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3416:7:8", + "typeDescriptions": {} + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1942, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3397:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1941, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3390:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3390:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3379:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "3379:51:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1953, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3451:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1954, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3461:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1952, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "3443:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3443:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1956, + "nodeType": "ExpressionStatement", + "src": "3443:27:8" + } + ] + }, + "functionSelector": "74a0f94b", + "id": 1958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "2270:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "to", + "nameLocation": "2306:2:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2298:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2298:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2287:28:8" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2342:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2334:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2359:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2351:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2351:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:34:8" + }, + "scope": 2103, + "src": "2261:1276:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2064, + "nodeType": "Block", + "src": "3680:778:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1967, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3695:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3695:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1970, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3714:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3714:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3695:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1977, + "nodeType": "IfStatement", + "src": "3691:92:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1974, + "name": "PoolFactory__InsufficientFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1624, + "src": "3751:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3751:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "RevertStatement", + "src": "3744:39:8" + } + }, + { + "assignments": [ + 1979, + 1981 + ], + "declarations": [ + { + "constant": false, + "id": 1979, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "3803:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3795:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "3822:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3814:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3814:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1982, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "3835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3835:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3794:59:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1985, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3868:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1986, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1979, + "src": "3881:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1988, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3894:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1989, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "3907:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3894:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3868:48:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1995, + "nodeType": "IfStatement", + "src": "3864:110:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1992, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3938:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3938:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1994, + "nodeType": "RevertStatement", + "src": "3931:43:8" + } + }, + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "3993:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1998, + "nodeType": "VariableDeclarationStatement", + "src": "3985:16:8" + }, + { + "assignments": [ + 2000 + ], + "declarations": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "4020:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "4012:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4012:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2001, + "nodeType": "VariableDeclarationStatement", + "src": "4012:16:8" + }, + { + "id": 2058, + "nodeType": "Block", + "src": "4039:372:8", + "statements": [ + { + "assignments": [ + 2003 + ], + "declarations": [ + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "4062:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4054:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2005, + "initialValue": { + "id": 2004, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4072:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4054:24:8" + }, + { + "assignments": [ + 2007 + ], + "declarations": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "4101:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4093:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4093:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2009, + "initialValue": { + "id": 2008, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4111:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:24:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2010, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4136:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4149:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4136:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2021, + "nodeType": "IfStatement", + "src": "4132:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2017, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4177:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2018, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4181:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2014, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4159:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2013, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4152:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4168:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4152:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2020, + "nodeType": "ExpressionStatement", + "src": "4152:40:8" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2022, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4211:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4224:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4211:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2033, + "nodeType": "IfStatement", + "src": "4207:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2029, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4252:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2030, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4256:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2026, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4234:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2025, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4227:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4243:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4227:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2032, + "nodeType": "ExpressionStatement", + "src": "4227:40:8" + } + }, + { + "expression": { + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2034, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4282:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2041, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4327:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4319:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4319:7:8", + "typeDescriptions": {} + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2036, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4300:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2035, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4293:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4309:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4293:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4282:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2045, + "nodeType": "ExpressionStatement", + "src": "4282:51:8" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2046, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4348:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2053, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4393:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4385:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4385:7:8", + "typeDescriptions": {} + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2048, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4366:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2047, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4359:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4375:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4359:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4348:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "4348:51:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "id": 2060, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4431:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2061, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4441:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2059, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4423:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4423:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2063, + "nodeType": "ExpressionStatement", + "src": "4423:27:8" + } + ] + }, + "functionSelector": "6d9a640a", + "id": 2065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "3554:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1960, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "3577:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3569:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3569:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1962, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "3606:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3598:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3598:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "to", + "nameLocation": "3635:2:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3627:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3627:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3558:112:8" + }, + "returnParameters": { + "id": 1966, + "nodeType": "ParameterList", + "parameters": [], + "src": "3680:0:8" + }, + "scope": 2103, + "src": "3545:913:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2076, + "nodeType": "Block", + "src": "4533:46:8", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2072, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "4552:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2073, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "4562:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4551:20:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2071, + "id": 2075, + "nodeType": "Return", + "src": "4544:27:8" + } + ] + }, + "functionSelector": "b9cf5005", + "id": 2077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "4475:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [], + "src": "4491:2:8" + }, + "returnParameters": { + "id": 2071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2068, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4515:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4515:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4524:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4514:18:8" + }, + "scope": 2103, + "src": "4466:113:8", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2101, + "nodeType": "Block", + "src": "4653:145:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2087, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4719:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4711:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4711:7:8", + "typeDescriptions": {} + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4711:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2082, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4693:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2081, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4686:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4701:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4686:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4773:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4765:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4765:7:8", + "typeDescriptions": {} + } + }, + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4765:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2091, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4747:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4740:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4755:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4740:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2080, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4664:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4664:126:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2100, + "nodeType": "ExpressionStatement", + "src": "4664:126:8" + } + ] + }, + "functionSelector": "fff6cae9", + "id": 2102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "4637:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [], + "src": "4641:2:8" + }, + "returnParameters": { + "id": 2079, + "nodeType": "ParameterList", + "parameters": [], + "src": "4653:0:8" + }, + "scope": 2103, + "src": "4628:170:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2104, + "src": "319:4482:8", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40, + 1620, + 1622, + 1624 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:4768:8" + }, + "id": 8 + }, + "contracts/core/interfaces/IFactory.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "exportedSymbols": { + "IFactory": [ + 2124 + ] + }, + "id": 2125, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2105, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IFactory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2124, + "linearizedBaseContracts": [ + 2124 + ], + "name": "IFactory", + "nameLocation": "70:8:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4a70f02e", + "id": 2114, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "95:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "127:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "119:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "144:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "108:57:9" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "184:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "184:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "183:9:9" + }, + "scope": 2124, + "src": "86:107:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e3433615", + "id": 2123, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "210:10:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "239:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "231:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "264:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "256:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "220:57:9" + }, + "returnParameters": { + "id": 2122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2121, + "mutability": "mutable", + "name": "poolPair", + "nameLocation": "304:8:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "296:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "295:18:9" + }, + "scope": 2124, + "src": "201:113:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2125, + "src": "60:257:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:284:9" + }, + "id": 9 + }, + "contracts/core/interfaces/IPool.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "exportedSymbols": { + "IPool": [ + 2166 + ] + }, + "id": 2167, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2126, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2166, + "linearizedBaseContracts": [ + 2166 + ], + "name": "IPool", + "nameLocation": "70:5:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "f09a4016", + "id": 2133, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "189:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2128, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "202:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "194:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "194:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "219:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "211:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "193:34:10" + }, + "returnParameters": { + "id": 2132, + "nodeType": "ParameterList", + "parameters": [], + "src": "236:0:10" + }, + "scope": 2166, + "src": "180:57:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 2140, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "254:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2135, + "mutability": "mutable", + "name": "_to", + "nameLocation": "267:3:10", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "259:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "259:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "258:13:10" + }, + "returnParameters": { + "id": 2139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "290:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "290:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "289:9:10" + }, + "scope": 2166, + "src": "245:54:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "74a0f94b", + "id": 2149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "316:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "to", + "nameLocation": "352:2:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "344:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "333:28:10" + }, + "returnParameters": { + "id": 2148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "388:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "380:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2147, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "405:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "397:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "397:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:34:10" + }, + "scope": 2166, + "src": "307:107:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b9cf5005", + "id": 2156, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "431:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:10" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2152, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "473:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "482:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:18:10" + }, + "scope": 2166, + "src": "422:69:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6d9a640a", + "id": 2165, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "508:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "531:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "523:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2160, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "560:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "552:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "552:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2162, + "mutability": "mutable", + "name": "to", + "nameLocation": "589:2:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "581:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "581:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "512:112:10" + }, + "returnParameters": { + "id": 2164, + "nodeType": "ParameterList", + "parameters": [], + "src": "633:0:10" + }, + "scope": 2166, + "src": "499:135:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2167, + "src": "60:577:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:604:10" + }, + "id": 10 + }, + "contracts/core/interfaces/IWedu.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "exportedSymbols": { + "IWEDU": [ + 2186 + ] + }, + "id": 2187, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2168, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IWEDU", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2186, + "linearizedBaseContracts": [ + 2186 + ], + "name": "IWEDU", + "nameLocation": "70:5:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 2171, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "92:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [], + "src": "99:2:11" + }, + "returnParameters": { + "id": 2170, + "nodeType": "ParameterList", + "parameters": [], + "src": "118:0:11" + }, + "scope": 2186, + "src": "83:36:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 2180, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "136:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2173, + "mutability": "mutable", + "name": "to", + "nameLocation": "153:2:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "145:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2175, + "mutability": "mutable", + "name": "value", + "nameLocation": "162:5:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "157:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2174, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "157:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "144:24:11" + }, + "returnParameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "187:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2177, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "187:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "186:6:11" + }, + "scope": 2186, + "src": "127:66:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e1a7d4d", + "id": 2185, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "210:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2185, + "src": "219:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "219:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:6:11" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [], + "src": "233:0:11" + }, + "scope": 2186, + "src": "201:33:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2187, + "src": "60:177:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:204:11" + }, + "id": 11 + }, + "contracts/core/libraries/Library.sol": { + "ast": { + "absolutePath": "contracts/core/libraries/Library.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 2296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2188, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:12" + }, + { + "errorSelector": "4bea99d9", + "id": 2190, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "66:29:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "95:2:12" + }, + "src": "60:38:12" + }, + { + "errorSelector": "74b959e9", + "id": 2192, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "106:24:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:12" + }, + "src": "100:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DefiLibrary", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2295, + "linearizedBaseContracts": [ + 2295 + ], + "name": "DefiLibrary", + "nameLocation": "145:11:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2235, + "nodeType": "Block", + "src": "397:341:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2203, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "412:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2204, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "422:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2209, + "nodeType": "IfStatement", + "src": "408:60:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2206, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "437:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "437:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2208, + "nodeType": "RevertStatement", + "src": "430:38:12" + } + }, + { + "expression": { + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 2210, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "480:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2211, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2201, + "src": "488:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2212, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "479:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2213, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "498:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2214, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "507:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "498:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 2219, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "562:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2220, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "570:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "561:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "498:79:12", + "trueExpression": { + "components": [ + { + "id": 2216, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "530:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2217, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "538:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2218, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "529:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "src": "479:98:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "479:98:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2225, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "675:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "685:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:12", + "typeDescriptions": {} + } + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "685:10:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "675:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2234, + "nodeType": "IfStatement", + "src": "671:59:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2192, + "src": "704:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "697:33:12" + } + } + ] + }, + "id": 2236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sortTokens", + "nameLocation": "274:10:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "303:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "295:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "328:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "320:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "284:57:12" + }, + "returnParameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "token0", + "nameLocation": "373:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "365:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "token1", + "nameLocation": "389:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "381:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2200, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "364:32:12" + }, + "scope": 2295, + "src": "265:473:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2293, + "nodeType": "Block", + "src": "1077:437:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2248, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1096:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1096:12:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:45:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 2247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1088:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1088:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2253, + "nodeType": "ExpressionStatement", + "src": "1088:68:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2255, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1189:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1189:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2258, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1206:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1189:31:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:42:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 2254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1167:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1167:121:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2264, + "nodeType": "ExpressionStatement", + "src": "1167:121:12" + }, + { + "assignments": [ + 2266 + ], + "declarations": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "amountInWithFee", + "nameLocation": "1304:15:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1299:20:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1299:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1322:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "393937", + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_997_by_1", + "typeString": "int_const 997" + }, + "value": "997" + }, + "src": "1322:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1299:37:12" + }, + { + "assignments": [ + 2272 + ], + "declarations": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "numerator", + "nameLocation": "1352:9:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1347:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1347:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2276, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2273, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1364:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2274, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1382:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1364:28:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1347:45:12" + }, + { + "assignments": [ + 2278 + ], + "declarations": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1408:11:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1403:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2286, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2279, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1423:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31303030", + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1435:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "1423:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1422:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "id": 2283, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1444:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2284, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1443:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1422:38:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1403:57:12" + }, + { + "expression": { + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2287, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "1471:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2288, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1483:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2289, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2278, + "src": "1495:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:23:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1471:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2292, + "nodeType": "ExpressionStatement", + "src": "1471:35:12" + } + ] + }, + "id": 2294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "943:12:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "971:8:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "966:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "966:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "995:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "990:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "990:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "1020:10:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1015:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1015:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "955:82:12" + }, + "returnParameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "1066:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1061:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:16:12" + }, + "scope": 2295, + "src": "934:580:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2296, + "src": "137:1380:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:1484:12" + }, + "id": 12 + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol", + "exportedSymbols": { + "AppleToken": [ + 2322 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2323, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2298, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2323, + "sourceUnit": 652, + "src": "61:55:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2299, + "name": "ERC20", + "nameLocations": [ + "143:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "143:5:13" + }, + "id": 2300, + "nodeType": "InheritanceSpecifier", + "src": "143:5:13" + } + ], + "canonicalName": "AppleToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2322, + "linearizedBaseContracts": [ + 2322, + 651, + 41, + 755, + 729, + 785 + ], + "name": "AppleToken", + "nameLocation": "129:10:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2307, + "nodeType": "Block", + "src": "192:2:13", + "statements": [] + }, + "id": 2308, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4170706c65", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1", + "typeString": "literal_string \"Apple\"" + }, + "value": "Apple" + }, + { + "hexValue": "415054", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:5:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1", + "typeString": "literal_string \"APT\"" + }, + "value": "APT" + } + ], + "id": 2305, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2302, + "name": "ERC20", + "nameLocations": [ + "170:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "170:5:13" + }, + "nodeType": "ModifierInvocation", + "src": "170:21:13" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "167:2:13" + }, + "returnParameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:0:13" + }, + "scope": 2322, + "src": "156:38:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2320, + "nodeType": "Block", + "src": "252:37:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2316, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "269:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2317, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "274:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2315, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "263:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "263:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2319, + "nodeType": "ExpressionStatement", + "src": "263:18:13" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "211:4:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "_to", + "nameLocation": "224:3:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "216:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "216:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2312, + "mutability": "mutable", + "name": "amount", + "nameLocation": "237:6:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "229:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "229:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "215:29:13" + }, + "returnParameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [], + "src": "252:0:13" + }, + "scope": 2322, + "src": "202:87:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2323, + "src": "120:205:13", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:292:13" + }, + "id": 13 + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol", + "exportedSymbols": { + "CherryToken": [ + 2349 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2350, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2324, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2325, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2350, + "sourceUnit": 652, + "src": "61:55:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2326, + "name": "ERC20", + "nameLocations": [ + "144:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "144:5:14" + }, + "id": 2327, + "nodeType": "InheritanceSpecifier", + "src": "144:5:14" + } + ], + "canonicalName": "CherryToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2349, + "linearizedBaseContracts": [ + 2349, + 651, + 41, + 755, + 729, + 785 + ], + "name": "CherryToken", + "nameLocation": "129:11:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2334, + "nodeType": "Block", + "src": "194:2:14", + "statements": [] + }, + "id": 2335, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436865727279", + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "177:8:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f", + "typeString": "literal_string \"Cherry\"" + }, + "value": "Cherry" + }, + { + "hexValue": "434854", + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "187:5:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18", + "typeString": "literal_string \"CHT\"" + }, + "value": "CHT" + } + ], + "id": 2332, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2329, + "name": "ERC20", + "nameLocations": [ + "171:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "171:5:14" + }, + "nodeType": "ModifierInvocation", + "src": "171:22:14" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2328, + "nodeType": "ParameterList", + "parameters": [], + "src": "168:2:14" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:14" + }, + "scope": 2349, + "src": "157:39:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2347, + "nodeType": "Block", + "src": "254:37:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2343, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "271:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2344, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "276:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2342, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "265:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2346, + "nodeType": "ExpressionStatement", + "src": "265:18:14" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "213:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2337, + "mutability": "mutable", + "name": "_to", + "nameLocation": "226:3:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "218:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2339, + "mutability": "mutable", + "name": "amount", + "nameLocation": "239:6:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "231:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "231:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:29:14" + }, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:14" + }, + "scope": 2349, + "src": "204:87:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2350, + "src": "120:207:14", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:294:14" + }, + "id": 14 + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "WrappedEduToken": [ + 2376 + ] + }, + "id": 2377, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2351, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:15" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2352, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2377, + "sourceUnit": 652, + "src": "61:55:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2353, + "name": "ERC20", + "nameLocations": [ + "148:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "148:5:15" + }, + "id": 2354, + "nodeType": "InheritanceSpecifier", + "src": "148:5:15" + } + ], + "canonicalName": "WrappedEduToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2376, + "linearizedBaseContracts": [ + 2376, + 651, + 41, + 755, + 729, + 785 + ], + "name": "WrappedEduToken", + "nameLocation": "129:15:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2361, + "nodeType": "Block", + "src": "203:2:15", + "statements": [] + }, + "id": 2362, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "57726170706564456475", + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "181:12:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479", + "typeString": "literal_string \"WrappedEdu\"" + }, + "value": "WrappedEdu" + }, + { + "hexValue": "57454455", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "195:6:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03", + "typeString": "literal_string \"WEDU\"" + }, + "value": "WEDU" + } + ], + "id": 2359, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2356, + "name": "ERC20", + "nameLocations": [ + "175:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "175:5:15" + }, + "nodeType": "ModifierInvocation", + "src": "175:27:15" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:15" + }, + "returnParameters": { + "id": 2360, + "nodeType": "ParameterList", + "parameters": [], + "src": "203:0:15" + }, + "scope": 2376, + "src": "161:44:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2374, + "nodeType": "Block", + "src": "372:37:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2370, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "389:3:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2371, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2366, + "src": "394:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "383:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "383:18:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2373, + "nodeType": "ExpressionStatement", + "src": "383:18:15" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2375, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "331:4:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "_to", + "nameLocation": "344:3:15", + "nodeType": "VariableDeclaration", + "scope": 2375, + "src": "336:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "336:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2366, + "mutability": "mutable", + "name": "amount", + "nameLocation": "357:6:15", + "nodeType": "VariableDeclaration", + "scope": 2375, + "src": "349:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "335:29:15" + }, + "returnParameters": { + "id": 2368, + "nodeType": "ParameterList", + "parameters": [], + "src": "372:0:15" + }, + "scope": 2376, + "src": "322:87:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2377, + "src": "120:325:15", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:412:15" + }, + "id": 15 + } + }, + "contracts": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/core/Factory.sol": { + "PoolFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotSetter", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__PoolExists", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "addToFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "removeFromFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiver", + "type": "address" + } + ], + "name": "setFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_832": { + "entryPoint": null, + "id": 832, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 221, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 242, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 180, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 143, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 198, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1199:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "922:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "968:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "970:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "970:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "970:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "943:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "952:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "939:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "939:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "964:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "935:32:16" + }, + "nodeType": "YulIf", + "src": "932:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1061:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1076:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1090:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1080:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1105:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1151:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1162:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1147:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1147:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1171:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1115:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1115:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1105:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "892:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "903:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "915:6:16", + "type": "" + } + ], + "src": "845:351:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@addToFeeReceiverSetter_986": { + "entryPoint": 571, + "id": 986, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@checkIfSetter_1018": { + "entryPoint": 2042, + "id": 1018, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createPool_942": { + "entryPoint": 671, + "id": 942, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getTokenPairs_958": { + "entryPoint": 404, + "id": 958, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@removeFromFeeReceiverSetter_1001": { + "entryPoint": 303, + "id": 1001, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setFeeReceiver_971": { + "entryPoint": 1965, + "id": 971, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 2279, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2302, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 2352, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2423, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": { + "entryPoint": 2522, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2549, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 2597, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": { + "entryPoint": 2642, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2233, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2201, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_address": { + "entryPoint": 2502, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint160": { + "entryPoint": 2482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2196, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_96": { + "entryPoint": 2469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 2253, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3663:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "907:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "953:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "955:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "955:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "955:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "928:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "937:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "924:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "920:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "920:32:16" + }, + "nodeType": "YulIf", + "src": "917:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1046:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1061:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1075:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1065:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1090:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1125:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1121:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1121:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1145:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1100:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1100:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1090:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "877:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "888:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "900:6:16", + "type": "" + } + ], + "src": "841:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1259:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1305:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1307:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1307:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1307:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1280:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1289:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1276:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1276:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1301:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:32:16" + }, + "nodeType": "YulIf", + "src": "1269:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1398:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1413:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1417:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1442:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1477:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1488:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1473:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1473:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1497:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1452:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1452:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1442:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1525:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1540:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1544:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1570:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1605:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1616:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1601:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1601:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1625:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1580:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1580:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1570:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1221:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1232:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1244:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1252:6:16", + "type": "" + } + ], + "src": "1176:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1738:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1761:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1743:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1743:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1731:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1731:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1731:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1709:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1716:3:16", + "type": "" + } + ], + "src": "1656:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1878:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1888:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1900:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1911:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1896:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1888:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1968:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1981:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1992:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1977:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1977:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1924:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "1924:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1924:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1850:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1862:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1873:4:16", + "type": "" + } + ], + "src": "1780:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2050:52:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2060:35:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2085:2:16", + "type": "", + "value": "96" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2089:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2081:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2081:14:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "2060:8:16" + } + ] + } + ] + }, + "name": "shift_left_96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2031:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "2041:8:16", + "type": "" + } + ], + "src": "2008:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2155:47:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2165:31:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2190:5:16" + } + ], + "functionName": { + "name": "shift_left_96", + "nodeType": "YulIdentifier", + "src": "2176:13:16" + }, + "nodeType": "YulFunctionCall", + "src": "2176:20:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2165:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2147:7:16", + "type": "" + } + ], + "src": "2108:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2255:53:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2265:37:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2296:5:16" + } + ], + "functionName": { + "name": "leftAlign_t_uint160", + "nodeType": "YulIdentifier", + "src": "2276:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2276:26:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2265:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2237:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2247:7:16", + "type": "" + } + ], + "src": "2208:100:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2397:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2414:3:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2457:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "2439:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2439:24:16" + } + ], + "functionName": { + "name": "leftAlign_t_address", + "nodeType": "YulIdentifier", + "src": "2419:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2419:45:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2407:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2407:58:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2385:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2392:3:16", + "type": "" + } + ], + "src": "2314:157:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2621:253:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2694:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2703:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2632:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2632:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2632:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2716:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2727:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2732:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2723:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2723:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2716:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2807:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2816:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2745:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2745:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2745:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2829:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2840:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2845:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2829:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2858:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2865:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2858:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2592:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2598:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2617:3:16", + "type": "" + } + ], + "src": "2477:397:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3006:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3016:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3028:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3039:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3024:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3016:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3096:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3109:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3105:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3105:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3052:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3052:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3052:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3190:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3201:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3186:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3186:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3133:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2970:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2982:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2990:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3001:4:16", + "type": "" + } + ], + "src": "2880:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3372:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3382:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3394:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3405:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3390:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3382:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3462:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3475:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3486:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3471:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3471:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3418:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3418:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3543:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3552:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3499:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3499:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3499:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3625:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3638:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3649:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3634:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3581:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3581:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3581:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3328:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3340:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3348:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3356:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3367:4:16", + "type": "" + } + ], + "src": "3218:442:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o" + }, + "methodIdentifiers": { + "addToFeeReceiverSetter(address)": "5ac40ab3", + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e", + "removeFromFeeReceiverSetter(address)": "48397023", + "setFeeReceiver(address)": "efdcd974" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/LiquidityProvider.sol": { + "LiquidityProvider": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1052": { + "entryPoint": null, + "id": 1052, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 273, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 167, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 224, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1355:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "939:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "985:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "987:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "987:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "960:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "969:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "956:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "981:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "952:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "952:32:16" + }, + "nodeType": "YulIf", + "src": "949:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1078:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1093:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1107:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1122:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1179:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1164:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1164:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1188:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1132:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1132:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1122:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1216:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1231:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1235:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1261:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1307:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1318:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1303:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1327:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1271:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1271:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1261:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "901:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "912:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "924:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "932:6:16", + "type": "" + } + ], + "src": "845:507:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addLiquidity_1185": { + "entryPoint": 1933, + "id": 1185, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@_swap_1350": { + "entryPoint": 2677, + "id": 1350, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addLiquidity_1260": { + "entryPoint": 216, + "id": 1260, + "parameterSlots": 6, + "returnSlots": 3 + }, + "@getAmountOut_2294": { + "entryPoint": 3071, + "id": 2294, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getAmountsOut_1536": { + "entryPoint": 1503, + "id": 1536, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@quote_1460": { + "entryPoint": 3305, + "id": 1460, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sortTokens_2236": { + "entryPoint": 3484, + "id": 2236, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@swapExactTokensForTokens_1421": { + "entryPoint": 802, + "id": 1421, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 5088, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4160, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 5244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 5337, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 5109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": { + "entryPoint": 3934, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4921, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5265, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 5358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256_fromMemory": { + "entryPoint": 5719, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4246, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6542, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4406, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4075, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5310, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 5047, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5154, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6577, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 5954, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3766, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 6414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 6301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3786, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3880, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4650, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "increment_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 5495, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 6367, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4603, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4155, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": { + "entryPoint": 5611, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": { + "entryPoint": 6155, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": { + "entryPoint": 6463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": { + "entryPoint": 6009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3836, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 5221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3890, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:20048:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:16", + "type": "" + } + ], + "src": "841:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:16" + }, + "nodeType": "YulIf", + "src": "977:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:16", + "type": "" + } + ], + "src": "924:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:16", + "type": "" + } + ], + "src": "1052:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1348:906:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1395:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1397:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1397:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1397:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1369:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1378:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1365:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1365:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1390:3:16", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1361:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1361:33:16" + }, + "nodeType": "YulIf", + "src": "1358:120:16" + }, + { + "nodeType": "YulBlock", + "src": "1488:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1503:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1507:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1532:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1567:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1578:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1563:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1587:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1542:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1542:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1532:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1615:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1630:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1644:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1634:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1660:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1695:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1706:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1691:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1670:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1670:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1660:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1743:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1758:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1762:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1788:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1823:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1834:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1819:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1819:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1843:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1798:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1798:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1788:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1871:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1886:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1900:2:16", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1890:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1916:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1951:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1962:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1947:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1971:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1926:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1926:53:16" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1916:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1999:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2014:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2028:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2018:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2045:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2080:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2091:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2076:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2100:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2055:53:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2045:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2128:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2143:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2157:3:16", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2147:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2174:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2220:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2205:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2229:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2184:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2184:53:16" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2174:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1278:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1289:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1301:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1309:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1317:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1325:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1333:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1341:6:16", + "type": "" + } + ], + "src": "1197:1057:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2325:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2342:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2365:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2347:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2347:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2335:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2335:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2335:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2313:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2320:3:16", + "type": "" + } + ], + "src": "2260:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2538:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2548:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2560:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2556:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2556:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2548:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2628:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2641:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2637:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2584:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2584:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2584:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2709:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2722:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2733:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2718:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2665:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2665:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2665:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2791:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2815:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2800:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2747:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2747:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2494:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2506:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2514:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2522:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2533:4:16", + "type": "" + } + ], + "src": "2384:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2921:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2938:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2941:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2931:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2931:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2931:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2832:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3044:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3054:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2955:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3177:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3177:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "3078:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3308:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3357:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3359:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3359:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3359:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3336:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3344:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3332:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3332:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3351:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3328:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3321:35:16" + }, + "nodeType": "YulIf", + "src": "3318:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "3449:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3472:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3459:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3459:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3449:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3522:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3524:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3524:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3524:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3494:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3502:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3491:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3491:30:16" + }, + "nodeType": "YulIf", + "src": "3488:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3614:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3630:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3638:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3626:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3614:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3662:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3676:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3684:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3672:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3672:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3658:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3658:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3692:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3655:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3655:41:16" + }, + "nodeType": "YulIf", + "src": "3652:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3275:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3283:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "3291:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3301:6:16", + "type": "" + } + ], + "src": "3218:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:714:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3973:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3975:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3975:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3975:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3948:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3944:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3969:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3940:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3940:32:16" + }, + "nodeType": "YulIf", + "src": "3937:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4066:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4081:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4095:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4085:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4110:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4145:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4156:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4141:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4165:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4120:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4120:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4110:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4193:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4208:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4222:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4212:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4238:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4273:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4284:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4269:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4293:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4248:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4248:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4238:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4321:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4336:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4367:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4378:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4363:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4350:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4350:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4340:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4429:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4431:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4431:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4431:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4401:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4398:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4398:30:16" + }, + "nodeType": "YulIf", + "src": "4395:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "4526:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4607:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4592:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4616:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "4544:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "4544:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4526:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4534:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3873:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3884:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3896:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3904:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3912:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3920:6:16", + "type": "" + } + ], + "src": "3792:849:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4721:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4732:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4748:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4742:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4742:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4732:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4704:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4714:6:16", + "type": "" + } + ], + "src": "4647:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4878:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4895:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4900:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4888:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4888:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4888:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "4916:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4935:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4931:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4931:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4916:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4850:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4855:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4866:11:16", + "type": "" + } + ], + "src": "4767:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5029:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5039:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5047:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5039:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5060:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5072:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5077:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5068:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5068:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5060:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5016:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5024:4:16", + "type": "" + } + ], + "src": "4957:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5150:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5167:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5190:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5172:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5172:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5160:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5160:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5138:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5145:3:16", + "type": "" + } + ], + "src": "5095:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5289:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5333:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5341:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5299:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "5299:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5299:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "5354:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5372:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5377:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5368:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5354:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5262:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5270:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5278:10:16", + "type": "" + } + ], + "src": "5209:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5469:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5479:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5491:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5496:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5487:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "5479:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5456:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "5464:4:16", + "type": "" + } + ], + "src": "5394:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5667:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5677:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5739:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5691:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "5691:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5681:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5754:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5835:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5840:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5761:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "5761:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5754:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5856:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5921:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5871:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "5871:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5860:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5936:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5950:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6040:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6067:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6061:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "6061:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6044:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6087:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "6138:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6153:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6094:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6094:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6087:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6170:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6233:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6180:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "6180:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6170:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5988:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5991:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5985:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5999:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6001:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6010:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6013:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6006:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6001:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5970:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5972:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5981:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5976:1:16", + "type": "" + } + ] + } + ] + }, + "src": "5966:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "6259:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6266:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6259:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5646:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5653:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5662:3:16", + "type": "" + } + ], + "src": "5543:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6429:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6439:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6451:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6447:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6447:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6439:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6486:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6497:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6482:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6482:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6505:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6501:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6501:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6475:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "6531:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6633:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6642:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6539:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "6539:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6531:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6401:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6413:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6424:4:16", + "type": "" + } + ], + "src": "6281:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6718:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6736:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6743:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6732:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6732:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6752:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6748:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6728:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6728:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6718:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6691:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6701:6:16", + "type": "" + } + ], + "src": "6660:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6796:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6813:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6816:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6806:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6806:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6806:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6910:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6913:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6903:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6903:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6903:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6937:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6927:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6927:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "6768:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6997:238:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7007:58:16", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7029:6:16" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7059:4:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7037:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "7037:27:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7025:40:16" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7011:10:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7176:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7178:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7178:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7178:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7119:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7131:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7116:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7116:34:16" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7155:10:16" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7167:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7152:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7113:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7113:62:16" + }, + "nodeType": "YulIf", + "src": "7110:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7214:2:16", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7218:10:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7207:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7207:22:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7207:22:16" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6983:6:16", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "6991:4:16", + "type": "" + } + ], + "src": "6954:281:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7282:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7292:30:16", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7302:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "7302:20:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7292:6:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7351:6:16" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7359:4:16" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7331:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "7331:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7331:33:16" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7266:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7275:6:16", + "type": "" + } + ], + "src": "7241:129:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7458:229:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7563:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7565:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7565:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7565:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7535:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7543:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7532:30:16" + }, + "nodeType": "YulIf", + "src": "7529:56:16" + }, + { + "nodeType": "YulAssignment", + "src": "7595:25:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7607:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7615:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7603:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7603:17:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7595:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:23:16", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7669:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7675:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7665:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:15:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7657:4:16" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7453:4:16", + "type": "" + } + ], + "src": "7376:311:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7812:608:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7822:90:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7847:56:16" + }, + "nodeType": "YulFunctionCall", + "src": "7847:64:16" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "7831:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "7831:81:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7822:5:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7921:16:16", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7932:5:16" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "7925:3:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7954:5:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7947:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7947:21:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7947:21:16" + }, + { + "nodeType": "YulAssignment", + "src": "7977:23:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7988:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7995:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7984:16:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "7977:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8010:44:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8028:6:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8040:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8048:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8024:30:16" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "8014:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8082:103:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8096:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8096:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8096:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8069:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8077:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8066:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8066:15:16" + }, + "nodeType": "YulIf", + "src": "8063:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8270:144:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8285:21:16", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8303:3:16" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "8289:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8327:3:16" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "8353:10:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8365:3:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8332:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8332:37:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8320:50:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8320:50:16" + }, + { + "nodeType": "YulAssignment", + "src": "8383:21:16", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8394:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8399:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8390:14:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8383:3:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8223:3:16" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8228:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8220:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8220:15:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8236:25:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8238:21:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8249:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8254:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8245:14:16" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8238:3:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8198:21:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8200:17:16", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8211:6:16" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8204:3:16", + "type": "" + } + ] + } + ] + }, + "src": "8194:220:16" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7782:6:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7790:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7798:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7806:5:16", + "type": "" + } + ], + "src": "7710:710:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8520:293:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8569:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8571:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8571:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8571:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8548:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8556:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8544:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8544:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8563:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8540:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8540:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8533:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8533:35:16" + }, + "nodeType": "YulIf", + "src": "8530:122:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8661:34:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8688:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8675:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8675:20:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8665:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8704:103:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8780:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8776:17:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8795:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8803:3:16" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8713:62:16" + }, + "nodeType": "YulFunctionCall", + "src": "8713:94:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8704:5:16" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8498:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8506:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8514:5:16", + "type": "" + } + ], + "src": "8443:370:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8944:704:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8990:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8992:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8992:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8992:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8965:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8974:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8961:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8957:32:16" + }, + "nodeType": "YulIf", + "src": "8954:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9083:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9098:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9112:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9102:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9127:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9162:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9173:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9158:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9158:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9182:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9137:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9137:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9127:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9210:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9225:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9239:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9229:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9255:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9290:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9301:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9286:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9286:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9310:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9265:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9265:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9255:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9338:303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9353:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9380:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9367:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9367:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9357:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9446:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9448:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9448:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9448:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9418:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9426:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9415:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9415:30:16" + }, + "nodeType": "YulIf", + "src": "9412:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "9543:88:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9603:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9599:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9623:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9553:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "9553:78:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9543:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8898:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8909:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8921:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8929:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8937:6:16", + "type": "" + } + ], + "src": "8819:829:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9719:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9736:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9759:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9741:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9729:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9707:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9714:3:16", + "type": "" + } + ], + "src": "9654:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9904:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9914:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9926:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9937:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9922:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9922:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9914:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9994:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10007:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10003:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10003:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9950:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9950:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9950:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10075:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10088:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10084:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10031:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10031:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10031:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9868:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9880:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9888:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9899:4:16", + "type": "" + } + ], + "src": "9778:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10179:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10189:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10204:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10198:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "10198:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10189:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10247:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "10220:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "10220:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10220:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10157:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10165:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10173:5:16", + "type": "" + } + ], + "src": "10116:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10342:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10388:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10390:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10390:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10390:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10363:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10372:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10359:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10359:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10384:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10355:32:16" + }, + "nodeType": "YulIf", + "src": "10352:119:16" + }, + { + "nodeType": "YulBlock", + "src": "10481:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10496:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10500:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10525:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10571:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10582:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10567:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10591:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "10535:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "10535:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10525:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10312:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10323:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10335:6:16", + "type": "" + } + ], + "src": "10265:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10776:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10786:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10798:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10809:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10794:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10794:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10786:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10866:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10879:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10890:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10875:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10875:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10822:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10822:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10822:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10947:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10960:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10971:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10956:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10903:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10903:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10903:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11053:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11038:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10985:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10985:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10732:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10744:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10752:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10760:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10771:4:16", + "type": "" + } + ], + "src": "10622:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11112:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11122:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11147:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11140:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11140:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11133:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11133:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11122:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11094:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11104:7:16", + "type": "" + } + ], + "src": "11070:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11206:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11260:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11269:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11272:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11262:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11262:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11262:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11229:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11251:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11236:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "11236:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11226:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11226:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11219:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11219:40:16" + }, + "nodeType": "YulIf", + "src": "11216:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11199:5:16", + "type": "" + } + ], + "src": "11166:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11348:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11358:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11373:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11367:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11367:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11358:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11413:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "11389:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "11389:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11389:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11326:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11334:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11342:5:16", + "type": "" + } + ], + "src": "11288:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11505:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11551:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11553:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11553:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11553:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11526:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11535:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11522:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11522:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11547:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11518:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11518:32:16" + }, + "nodeType": "YulIf", + "src": "11515:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11644:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11659:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11673:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11663:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11688:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11731:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11742:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11727:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11751:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11698:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "11698:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11688:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11475:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11486:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11498:6:16", + "type": "" + } + ], + "src": "11431:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11880:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11890:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11902:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11913:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11898:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11898:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11890:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11970:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11979:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11926:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "11926:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11926:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11852:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11864:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11875:4:16", + "type": "" + } + ], + "src": "11782:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12098:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12092:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "12092:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12141:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "12114:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "12114:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12114:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:16", + "type": "" + } + ], + "src": "12010:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12236:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12282:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12284:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12284:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12284:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12257:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12266:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12253:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12253:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12278:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12249:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12249:32:16" + }, + "nodeType": "YulIf", + "src": "12246:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12375:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12390:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12404:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12394:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12419:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12465:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12461:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12461:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12485:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "12429:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "12429:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12419:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12206:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12217:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12229:6:16", + "type": "" + } + ], + "src": "12159:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12544:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12561:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12564:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12554:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12554:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12554:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12658:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12661:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12651:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12651:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12651:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12682:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12685:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12675:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12675:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12675:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "12516:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12768:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12814:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12816:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12816:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12816:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12789:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12798:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12785:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12781:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12781:32:16" + }, + "nodeType": "YulIf", + "src": "12778:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12907:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12922:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12936:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12926:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12951:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12986:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12997:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12982:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12982:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13006:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12961:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "12961:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12951:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12738:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12749:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12761:6:16", + "type": "" + } + ], + "src": "12702:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13065:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13085:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13075:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13075:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13075:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13179:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13182:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13172:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13172:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13172:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13196:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13196:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13196:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "13037:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13268:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13278:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13301:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13283:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13283:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13278:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13312:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13335:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13317:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13317:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13312:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13346:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13358:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13361:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13354:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13354:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13346:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13388:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13390:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "13390:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13390:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13379:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13385:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13376:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13376:11:16" + }, + "nodeType": "YulIf", + "src": "13373:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13254:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13257:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "13263:4:16", + "type": "" + } + ], + "src": "13223:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13536:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13541:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13529:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13529:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "13557:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13576:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13581:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13572:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13572:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13557:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13491:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13496:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13507:11:16", + "type": "" + } + ], + "src": "13423:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:32:16", + "type": "", + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13715:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:56:16" + } + ] + }, + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:16", + "type": "" + } + ], + "src": "13598:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13930:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13940:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14006:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14011:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13947:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "13947:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13940:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14112:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulIdentifier", + "src": "14023:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "14023:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14023:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "14125:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14136:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14141:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14132:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14125:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13918:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13926:3:16", + "type": "" + } + ], + "src": "13784:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14327:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14337:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14345:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14337:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14395:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14380:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14403:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14409:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14399:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14373:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "14373:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "14429:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14563:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14437:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "14437:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14429:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14307:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14322:4:16", + "type": "" + } + ], + "src": "14156:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14675:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14721:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14723:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14723:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14723:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14696:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14705:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14692:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14692:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14688:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14688:32:16" + }, + "nodeType": "YulIf", + "src": "14685:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14814:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14829:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14833:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14858:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14904:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14915:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14900:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14900:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14924:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "14868:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "14868:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14858:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14952:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14997:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15043:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15054:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15039:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15039:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15063:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15007:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "15007:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14997:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14637:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14648:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14660:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14668:6:16", + "type": "" + } + ], + "src": "14581:507:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15138:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15148:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15171:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15153:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15153:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15148:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15182:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15205:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15187:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15187:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15182:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15216:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15227:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15230:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15223:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15216:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15256:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15258:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15258:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15258:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15248:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15251:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15245:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15245:10:16" + }, + "nodeType": "YulIf", + "src": "15242:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15125:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15128:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15134:3:16", + "type": "" + } + ], + "src": "15094:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15334:190:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15344:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15371:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15353:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15353:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15344:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15467:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15469:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15469:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15469:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15392:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15399:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15389:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15389:77:16" + }, + "nodeType": "YulIf", + "src": "15386:103:16" + }, + { + "nodeType": "YulAssignment", + "src": "15498:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15509:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15505:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15505:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "15498:3:16" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15320:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "15330:3:16", + "type": "" + } + ], + "src": "15291:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15558:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15575:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15578:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15568:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15568:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15568:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15672:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15675:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15665:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15665:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15665:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15696:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15699:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15689:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15689:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15689:15:16" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "15530:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15870:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15880:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15892:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15903:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15888:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15880:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15960:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15973:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15984:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15969:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15969:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15916:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15916:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15916:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16041:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16054:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16065:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16050:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16050:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15997:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15997:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15997:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16123:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16136:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16147:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16132:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16079:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "16079:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16079:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15838:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15846:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15854:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15865:4:16", + "type": "" + } + ], + "src": "15716:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16270:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16292:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16300:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16288:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16304:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_I" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16281:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16281:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16281:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16360:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16368:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16356:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16356:15:16" + }, + { + "hexValue": "4e5055545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16373:13:16", + "type": "", + "value": "NPUT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16349:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16349:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:38:16" + } + ] + }, + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16262:6:16", + "type": "" + } + ], + "src": "16164:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16546:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16556:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16622:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16627:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16563:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16563:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16556:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16728:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulIdentifier", + "src": "16639:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16639:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16639:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16741:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16752:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16757:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16748:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16741:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16534:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16542:3:16", + "type": "" + } + ], + "src": "16400:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16943:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16953:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16965:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16976:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16961:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16953:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17000:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17011:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16996:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16996:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17019:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17025:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17015:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17015:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16989:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16989:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16989:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17045:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17179:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17053:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17053:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17045:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16923:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16938:4:16", + "type": "" + } + ], + "src": "16772:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:121:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_L" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:16" + }, + { + "hexValue": "4951554944495459", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:10:16", + "type": "", + "value": "IQUIDITY" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17382:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:35:16" + } + ] + }, + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:16", + "type": "" + } + ], + "src": "17197:227:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17576:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17586:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17652:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17657:2:16", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17593:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17593:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17586:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17758:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulIdentifier", + "src": "17669:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17669:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17669:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17771:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17782:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17787:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17778:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17771:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17564:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17572:3:16", + "type": "" + } + ], + "src": "17430:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17973:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17983:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17995:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18006:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17991:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17991:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18030:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18041:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18026:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18026:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18049:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18055:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18045:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18045:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18019:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18019:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18019:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18075:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18209:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18083:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18083:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18075:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17953:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17968:4:16", + "type": "" + } + ], + "src": "17802:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18275:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18285:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18308:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18290:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18290:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18285:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18342:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18324:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18324:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18319:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18353:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18376:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18379:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "18372:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18372:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "18357:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18390:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "18419:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18401:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18401:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18390:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18608:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18610:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18610:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18610:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18541:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18534:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18534:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18564:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18571:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18580:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18567:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18561:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18561:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "18514:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18514:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18494:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18494:113:16" + }, + "nodeType": "YulIf", + "src": "18491:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18258:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18261:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "18267:7:16", + "type": "" + } + ], + "src": "18227:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18671:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18688:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18691:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18681:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18681:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18681:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18785:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18788:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18778:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18778:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18778:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18809:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18812:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "18802:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18802:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18802:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "18643:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18871:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18881:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18904:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18886:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18886:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18881:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18915:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18938:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18920:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18920:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18915:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18962:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "18964:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18964:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18964:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18959:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18952:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18952:9:16" + }, + "nodeType": "YulIf", + "src": "18949:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "18994:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19003:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19006:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18999:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18999:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "18994:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18860:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18863:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "18869:1:16", + "type": "" + } + ], + "src": "18829:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19126:122:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19148:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19156:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19144:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19144:14:16" + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19160:34:16", + "type": "", + "value": "UniswapV2DefiLibrary: INSUFFICIE" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19137:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19137:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19137:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19216:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19224:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19212:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19212:15:16" + }, + { + "hexValue": "4e545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19229:11:16", + "type": "", + "value": "NT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19205:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19205:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19205:36:16" + } + ] + }, + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19118:6:16", + "type": "" + } + ], + "src": "19020:228:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19400:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19410:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19476:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19481:2:16", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19417:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19417:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19410:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19582:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulIdentifier", + "src": "19493:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "19493:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19493:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "19595:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19606:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19611:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19602:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19595:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19388:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19396:3:16", + "type": "" + } + ], + "src": "19254:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19797:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19807:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19819:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19830:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19815:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19815:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19807:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19865:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19850:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19873:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19879:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19869:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19869:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19843:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19843:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19843:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "19899:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20033:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19907:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "19907:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19899:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19777:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19792:4:16", + "type": "" + } + ], + "src": "19626:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1034": [ + { + "length": 32, + "start": 247 + }, + { + "length": 32, + "start": 808 + }, + { + "length": 32, + "start": 1940 + }, + { + "length": 32, + "start": 2152 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o" + }, + "methodIdentifiers": { + "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f", + "getAmountsOut(address,uint256,address[])": "bb7b9c76", + "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}" + } + }, + "contracts/core/Pool.sol": { + "Pool": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientLiquidity", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1659": { + "entryPoint": null, + "id": 1659, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 701, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 516, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 662, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 536, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 856, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 327, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 826, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 794, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 280, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 233, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 576, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 634, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 430, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 586, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 629, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MINIMUM_LIQUIDITY_1640": { + "entryPoint": 3762, + "id": 1640, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_542": { + "entryPoint": 4500, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 5335, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_burn_524": { + "entryPoint": 5205, + "id": 524, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 5032, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 4492, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 4518, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 4666, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_1699": { + "entryPoint": 5187, + "id": 1699, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 5806, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 3768, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 991, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 2461, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 1083, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTokenReserves_2077": { + "entryPoint": 3745, + "id": 2077, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@init_1683": { + "entryPoint": 3903, + "id": 1683, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@liquidateLpTokens_1958": { + "entryPoint": 2533, + "id": 1958, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@min_1558": { + "entryPoint": 5162, + "id": 1558, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_1816": { + "entryPoint": 1092, + "id": 1816, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_197": { + "entryPoint": 845, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sqrt_1612": { + "entryPoint": 4910, + "id": 1612, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@swap_2065": { + "entryPoint": 1681, + "id": 2065, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@symbol_206": { + "entryPoint": 3564, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sync_2102": { + "entryPoint": 4170, + "id": 2102, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@totalSupply_224": { + "entryPoint": 1026, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 1036, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 3710, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 6611, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 7746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 6665, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 7355, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 7153, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 6846, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 6686, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 7767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 7376, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256t_address": { + "entryPoint": 7029, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7313, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 6762, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6442, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 6942, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 7328, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 7682, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7812, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 6777, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6499, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7112, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 6957, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 6355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 6366, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 7867, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 7633, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 7520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 7468, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 6570, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 6750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 6538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6632, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 6929, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 6383, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 7264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 7421, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 7586, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 7217, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 6533, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 6425, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 6588, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 7723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 6642, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10776:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5288:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5334:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5336:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5336:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5336:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5309:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5318:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5305:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5330:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5301:32:16" + }, + "nodeType": "YulIf", + "src": "5298:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5427:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5442:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5456:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5446:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5471:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5506:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5517:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5502:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5502:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5526:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5481:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5481:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5471:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5554:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5569:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5583:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5573:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5599:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5634:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5645:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5630:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5654:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5609:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5609:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5599:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5682:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5697:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5711:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5701:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5727:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5773:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5782:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5737:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5737:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5727:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5242:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5253:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5265:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5273:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5281:6:16", + "type": "" + } + ], + "src": "5188:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5939:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5949:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5961:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5972:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5957:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5949:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6053:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6038:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5985:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6110:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6123:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6134:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6119:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6119:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6066:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6066:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6066:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5903:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5915:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5923:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5934:4:16", + "type": "" + } + ], + "src": "5813:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6234:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6280:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6282:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6282:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6282:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6255:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6264:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6251:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6251:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6276:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6247:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6247:32:16" + }, + "nodeType": "YulIf", + "src": "6244:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6373:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6388:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6402:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6392:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6417:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6452:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6463:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6448:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6448:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6472:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6427:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6427:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6417:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6500:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6515:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6529:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6519:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6545:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6580:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6591:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6576:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6576:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6600:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6555:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6555:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6545:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6196:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6207:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6219:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6227:6:16", + "type": "" + } + ], + "src": "6151:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6659:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6676:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6679:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6669:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6669:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6669:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6776:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6766:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6766:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6766:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6797:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6790:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6790:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6790:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6631:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6868:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6878:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6892:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6898:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6888:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6878:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6909:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6939:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6945:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6935:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6913:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6986:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7000:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7014:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7022:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7010:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7010:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7000:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6966:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6959:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6959:26:16" + }, + "nodeType": "YulIf", + "src": "6956:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7089:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "7103:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7103:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7103:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7053:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7076:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7084:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7073:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7073:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7050:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7050:38:16" + }, + "nodeType": "YulIf", + "src": "7047:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6852:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6861:6:16", + "type": "" + } + ], + "src": "6817:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7208:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7225:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7248:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7230:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7230:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7218:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7218:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7196:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7203:3:16", + "type": "" + } + ], + "src": "7143:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7365:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7375:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7387:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7398:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7383:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7383:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7375:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7455:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7468:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7479:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7464:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7411:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7411:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7411:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7337:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7349:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7360:4:16", + "type": "" + } + ], + "src": "7267:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7558:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7568:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7583:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7577:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "7577:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7568:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7626:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7599:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7599:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7599:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7536:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7544:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7552:5:16", + "type": "" + } + ], + "src": "7495:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7721:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7767:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7769:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7769:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7769:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7742:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7751:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7738:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7763:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7734:32:16" + }, + "nodeType": "YulIf", + "src": "7731:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7860:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7875:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7889:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7879:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7904:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7950:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7946:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7970:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "7914:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "7914:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7691:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7702:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7714:6:16", + "type": "" + } + ], + "src": "7644:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8029:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8049:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8039:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8039:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8039:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8143:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8146:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8136:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8136:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8136:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8167:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8170:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8160:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8160:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "8001:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8232:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8242:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8265:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8247:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8247:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8242:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8276:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8299:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8281:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8281:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8276:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8310:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8325:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8318:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8310:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8352:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8354:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8354:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8354:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8343:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8349:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8340:11:16" + }, + "nodeType": "YulIf", + "src": "8337:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8218:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8221:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "8227:4:16", + "type": "" + } + ], + "src": "8187:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8435:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8445:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8468:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8450:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8450:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8445:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8479:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8502:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8484:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8484:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8479:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8513:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8536:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8539:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8532:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8532:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "8517:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8550:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "8579:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8561:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8561:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8550:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8768:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8701:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8694:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8694:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8724:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8731:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8740:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8727:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8721:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8721:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8674:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8674:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8654:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8654:113:16" + }, + "nodeType": "YulIf", + "src": "8651:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8418:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8421:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "8427:7:16", + "type": "" + } + ], + "src": "8387:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8831:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8848:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8841:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8841:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8945:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8948:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8938:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8938:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8938:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8969:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8972:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8962:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8962:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8962:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "8803:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9031:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9041:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9064:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9046:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9046:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9041:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9075:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9098:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9080:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9080:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9075:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9122:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "9124:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "9124:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9124:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9119:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9112:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9112:9:16" + }, + "nodeType": "YulIf", + "src": "9109:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "9154:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9163:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9166:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9159:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "9154:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9020:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9023:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "9029:1:16", + "type": "" + } + ], + "src": "8989:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9306:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9316:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9328:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9339:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9324:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9324:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9316:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9396:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9409:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9420:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9405:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9352:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9352:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9352:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9477:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9501:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9486:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "9433:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9433:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9270:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9282:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9290:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9301:4:16", + "type": "" + } + ], + "src": "9180:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9558:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9612:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9621:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9624:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9614:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9614:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9581:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9603:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9588:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "9588:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9578:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9578:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9571:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9571:40:16" + }, + "nodeType": "YulIf", + "src": "9568:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9551:5:16", + "type": "" + } + ], + "src": "9518:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9700:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9710:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9725:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "9719:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9710:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9765:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9741:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9741:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9678:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9686:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9694:5:16", + "type": "" + } + ], + "src": "9640:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9857:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9905:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9905:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9878:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9887:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9874:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9874:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9870:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9870:32:16" + }, + "nodeType": "YulIf", + "src": "9867:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9996:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10011:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10025:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10015:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10040:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10083:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10094:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10079:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10079:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10103:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "10050:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "10050:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10040:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9827:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9838:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9850:6:16", + "type": "" + } + ], + "src": "9783:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10288:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10298:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10310:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10321:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10306:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10306:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10298:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10378:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10391:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10402:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10387:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10334:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10334:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10334:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10459:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10468:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10415:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10415:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10415:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10541:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10554:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10565:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10550:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10550:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10497:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10497:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10497:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10244:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10264:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10272:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10283:4:16", + "type": "" + } + ], + "src": "10134:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10626:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10636:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10659:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10641:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10636:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10670:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10693:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10675:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10675:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10670:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10704:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10715:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10718:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10711:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10711:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10704:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10744:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10746:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "10746:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10746:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10736:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10739:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10733:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10733:10:16" + }, + "nodeType": "YulIf", + "src": "10730:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10613:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10616:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10622:3:16", + "type": "" + } + ], + "src": "10582:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1631": [ + { + "length": 32, + "start": 3928 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o" + }, + "methodIdentifiers": { + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "name()": "06fdde03", + "swap(uint256,uint256,address)": "6d9a640a", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IFactory.sol": { + "IFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolPair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IPool.sol": { + "IPool": { + "abi": [ + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "swap(uint256,uint256,address)": "6d9a640a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IWedu.sol": { + "IWEDU": { + "abi": [ + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "deposit()": "d0e30db0", + "transfer(address,uint256)": "a9059cbb", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}" + } + }, + "contracts/core/libraries/Library.sol": { + "DefiLibrary": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "AppleToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2308": { + "entryPoint": null, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:13:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2321": { + "entryPoint": 798, + "id": 2321, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:13:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "CherryToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2335": { + "entryPoint": null, + "id": 2335, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:14:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2348": { + "entryPoint": 798, + "id": 2348, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:14:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "WrappedEduToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2362": { + "entryPoint": null, + "id": 2362, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ", + "sourceMap": "120:325:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:325:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:325:15:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2375": { + "entryPoint": 798, + "id": 2375, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ", + "sourceMap": "120:325:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;322:87:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;322:87:15:-;383:18;389:3;394:6;383:5;:18::i;:::-;322:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEduToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0x0e77a55918a3e8b9f3ad3c47b4a00f30e7c01e54b020ab9c6dbdb183ff3327c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea886a6d9652fa622008f2e3bac165b09329d1bdefdc89bce5fcc1373c8343df\",\"dweb:/ipfs/QmQ1kQ6AnmSbzT1vhdSkf2ExvgXKwDPhgzsp1gLWj21mER\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-1115/journal.jsonl b/Core uniswap/ignition/deployments/chain-1115/journal.jsonl new file mode 100644 index 00000000..a4a66d8d --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-1115/journal.jsonl @@ -0,0 +1,4 @@ + +{"chainId":1115,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"CherryTokenModule#CherryToken","constructorArgs":[],"contractName":"CherryToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"CherryTokenModule#CherryToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"CherryTokenModule#CherryToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json new file mode 100644 index 00000000..84fd58fd --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\455be90ea7dff1b385f62d8e4fced657.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json new file mode 100644 index 00000000..7e0be554 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json @@ -0,0 +1,342 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AppleToken", + "sourceName": "contracts/core/wrapped-native-token/Apple.Token.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json new file mode 100644 index 00000000..84fd58fd --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\455be90ea7dff1b385f62d8e4fced657.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json new file mode 100644 index 00000000..a4d5abd0 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json @@ -0,0 +1,342 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CherryToken", + "sourceName": "contracts/core/wrapped-native-token/CherryToken.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json new file mode 100644 index 00000000..5d49b9b3 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\b58a32b7e115e25f756aa700ce5572e8.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json new file mode 100644 index 00000000..bbf02dc5 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json @@ -0,0 +1,159 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LiquidityProvider", + "sourceName": "contracts/core/LiquidityProvider.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json new file mode 100644 index 00000000..5b157de3 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\e7e96229427b7faa67d9ec35320a6b93.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json new file mode 100644 index 00000000..0f470a56 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json @@ -0,0 +1,154 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PoolFactory", + "sourceName": "contracts/core/Factory.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotSetter", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__PoolExists", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "addToFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "removeFromFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiver", + "type": "address" + } + ], + "name": "setFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json new file mode 100644 index 00000000..44fecd38 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json new file mode 100644 index 00000000..016ad5d9 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json @@ -0,0 +1,342 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "WrappedEduToken", + "sourceName": "contracts/core/wrapped-native-token/WEdu.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json new file mode 100644 index 00000000..2c56b7da --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\7153d89ef561a9ce69894956d250c390.json" +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json new file mode 100644 index 00000000..ca8123a9 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json @@ -0,0 +1,337 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "WrappedEduToken", + "sourceName": "contracts/core/wrapped-native-token/WEdu.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610fa0806200041b6000396000f3fe6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json b/Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json new file mode 100644 index 00000000..eb75bf94 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json @@ -0,0 +1,27078 @@ +{ + "id": "455be90ea7dff1b385f62d8e4fced657", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 136 + ], + "IERC20Errors": [ + 41 + ], + "IERC721Errors": [ + 89 + ] + }, + "id": 137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "138:141:0", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 41, + "linearizedBaseContracts": [ + 41 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "309:309:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 11, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "654:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "670:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "687:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:0" + }, + "src": "623:80:0" + }, + { + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "709:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 16, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "891:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:0" + }, + "src": "866:41:0" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "913:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 21, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "1104:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "src": "1077:45:0" + }, + { + "documentation": { + "id": 22, + "nodeType": "StructuredDocumentation", + "src": "1128:345:0", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 30, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1511:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1528:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1547:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:0" + }, + "src": "1478:85:0" + }, + { + "documentation": { + "id": 31, + "nodeType": "StructuredDocumentation", + "src": "1569:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 35, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1775:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:0" + }, + "src": "1748:45:0" + }, + { + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "1799:195:0", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 40, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:0" + }, + "src": "1999:43:0" + } + ], + "scope": 137, + "src": "280:1764:0", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 42, + "nodeType": "StructuredDocumentation", + "src": "2046:143:0", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2220:219:0", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 47, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:0", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "2469:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:0" + }, + "src": "2444:40:0" + }, + { + "documentation": { + "id": 48, + "nodeType": "StructuredDocumentation", + "src": "2490:132:0", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 52, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2656:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:0" + }, + "src": "2627:46:0" + }, + { + "documentation": { + "id": 53, + "nodeType": "StructuredDocumentation", + "src": "2679:289:0", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 61, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3000:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3016:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3033:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:0" + }, + "src": "2973:75:0" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "3054:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 66, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "3237:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 63, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:0" + }, + "src": "3211:42:0" + }, + { + "documentation": { + "id": 67, + "nodeType": "StructuredDocumentation", + "src": "3259:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 71, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "3451:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:0" + }, + "src": "3423:46:0" + }, + { + "documentation": { + "id": 72, + "nodeType": "StructuredDocumentation", + "src": "3475:247:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 78, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3760:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3778:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:0" + }, + "src": "3727:68:0" + }, + { + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "3801:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 83, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "4008:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:0" + }, + "src": "3980:46:0" + }, + { + "documentation": { + "id": 84, + "nodeType": "StructuredDocumentation", + "src": "4032:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 88, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "4262:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:0" + }, + "src": "4234:46:0" + } + ], + "scope": 137, + "src": "2190:2092:0", + "usedErrors": [ + 47, + 52, + 61, + 66, + 71, + 78, + 83, + 88 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 90, + "nodeType": "StructuredDocumentation", + "src": "4284:145:0", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "4461:361:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 101, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4860:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4876:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4893:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4909:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:0" + }, + "src": "4827:99:0" + }, + { + "documentation": { + "id": 102, + "nodeType": "StructuredDocumentation", + "src": "4932:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 106, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "5116:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:0" + }, + "src": "5089:43:0" + }, + { + "documentation": { + "id": 107, + "nodeType": "StructuredDocumentation", + "src": "5138:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 111, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "5331:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:0" + }, + "src": "5302:47:0" + }, + { + "documentation": { + "id": 112, + "nodeType": "StructuredDocumentation", + "src": "5355:256:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 118, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:0" + }, + "src": "5616:68:0" + }, + { + "documentation": { + "id": 119, + "nodeType": "StructuredDocumentation", + "src": "5690:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 123, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:0", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "5898:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:0" + }, + "src": "5869:47:0" + }, + { + "documentation": { + "id": 124, + "nodeType": "StructuredDocumentation", + "src": "5922:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 128, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "6153:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:0" + }, + "src": "6124:47:0" + }, + { + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "6177:280:0", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 135, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6494:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6513:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:0" + }, + "src": "6462:73:0" + } + ], + "scope": 137, + "src": "4430:2107:0", + "usedErrors": [ + 101, + 106, + 111, + 118, + 123, + 128, + 135 + ], + "usedEvents": [] + } + ], + "src": "112:6426:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 140, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 730, + "src": "131:36:1", + "symbolAliases": [ + { + "foreign": { + "id": 139, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "139:6:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 142, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 756, + "src": "168:63:1", + "symbolAliases": [ + { + "foreign": { + "id": 141, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "176:14:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 144, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 786, + "src": "232:48:1", + "symbolAliases": [ + { + "foreign": { + "id": 143, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "240:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 146, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 137, + "src": "281:65:1", + "symbolAliases": [ + { + "foreign": { + "id": 145, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "289:12:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 148, + "name": "Context", + "nameLocations": [ + "1133:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 785, + "src": "1133:7:1" + }, + "id": 149, + "nodeType": "InheritanceSpecifier", + "src": "1133:7:1" + }, + { + "baseName": { + "id": 150, + "name": "IERC20", + "nameLocations": [ + "1142:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "1142:6:1" + }, + "id": 151, + "nodeType": "InheritanceSpecifier", + "src": "1142:6:1" + }, + { + "baseName": { + "id": 152, + "name": "IERC20Metadata", + "nameLocations": [ + "1150:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 755, + "src": "1150:14:1" + }, + "id": 153, + "nodeType": "InheritanceSpecifier", + "src": "1150:14:1" + }, + { + "baseName": { + "id": 154, + "name": "IERC20Errors", + "nameLocations": [ + "1166:12:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "1166:12:1" + }, + "id": 155, + "nodeType": "InheritanceSpecifier", + "src": "1166:12:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "348:757:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications." + }, + "fullyImplemented": true, + "id": 651, + "linearizedBaseContracts": [ + 651, + 41, + 755, + 729, + 785 + ], + "name": "ERC20", + "nameLocation": "1124:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1229:9:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1185:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 158, + "keyName": "account", + "keyNameLocation": "1201:7:1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1185:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1317:11:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1245:83:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 164, + "keyName": "account", + "keyNameLocation": "1261:7:1", + "keyType": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1245:63:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 163, + "keyName": "spender", + "keyNameLocation": "1288:7:1", + "keyType": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1272:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1351:12:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1335:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1385:5:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1370:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1370:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1411:7:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1396:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 170, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 187, + "nodeType": "Block", + "src": "1657:57:1", + "statements": [ + { + "expression": { + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 179, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 180, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "1675:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1667:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "1667:13:1" + }, + { + "expression": { + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "1690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 184, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "1700:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1690:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "1690:17:1" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "1425:171:1", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 188, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1627:5:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1613:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 173, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1613:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1648:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1634:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1634:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1612:44:1" + }, + "returnParameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1657:0:1" + }, + "scope": 651, + "src": "1601:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 742 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "1839:29:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1856:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "1849:12:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "1720:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "1788:4:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1792:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "1824:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1824:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1823:15:1" + }, + "scope": 651, + "src": "1779:89:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 748 + ], + "body": { + "id": 205, + "nodeType": "Block", + "src": "2043:31:1", + "statements": [ + { + "expression": { + "id": 203, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 202, + "id": 204, + "nodeType": "Return", + "src": "2053:14:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "1874:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "1990:6:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:1" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2028:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2028:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2027:15:1" + }, + "scope": 651, + "src": "1981:93:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 214, + "nodeType": "Block", + "src": "2763:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2780:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 211, + "id": 213, + "nodeType": "Return", + "src": "2773:9:1" + } + ] + }, + "documentation": { + "id": 207, + "nodeType": "StructuredDocumentation", + "src": "2080:622:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2716:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [], + "src": "2724:2:1" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2756:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 209, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2756:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2755:7:1" + }, + "scope": 651, + "src": "2707:82:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 678 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "2910:36:1", + "statements": [ + { + "expression": { + "id": 221, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2927:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 220, + "id": 222, + "nodeType": "Return", + "src": "2920:19:1" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "2795:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2858:11:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:2:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "2901:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2900:9:1" + }, + "scope": 651, + "src": "2849:97:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 236, + "nodeType": "Block", + "src": "3078:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "3095:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3095:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 231, + "id": 235, + "nodeType": "Return", + "src": "3088:25:1" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "2952:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3013:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "account", + "nameLocation": "3031:7:1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3022:17:1" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3068:9:1" + }, + "scope": 651, + "src": "3004:116:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 260, + "nodeType": "Block", + "src": "3390:103:1", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3408:5:1", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "3400:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 249, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3416:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3400:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 254, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3455:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3459:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3438:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3438:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "3438:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 246, + "id": 259, + "nodeType": "Return", + "src": "3475:11:1" + } + ] + }, + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3126:184:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3324:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "to", + "nameLocation": "3341:2:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3333:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "value", + "nameLocation": "3353:5:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3345:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3332:27:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3384:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3384:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3383:6:1" + }, + "scope": 651, + "src": "3315:178:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 706 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "3640:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 271, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 272, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "3669:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "3676:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 270, + "id": 276, + "nodeType": "Return", + "src": "3650:34:1" + } + ] + }, + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "3499:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3560:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3578:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3570:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3570:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3593:7:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3585:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3569:32:1" + }, + "returnParameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3631:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3630:9:1" + }, + "scope": 651, + "src": "3551:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 716 + ], + "body": { + "id": 301, + "nodeType": "Block", + "src": "4077:107:1", + "statements": [ + { + "assignments": [ + 289 + ], + "declarations": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4095:5:1", + "nodeType": "VariableDeclaration", + "scope": 301, + "src": "4087:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4087:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 292, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 290, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4103:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4103:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4087:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 294, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4134:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 295, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4150:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 293, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 542, + "src": "4125:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4125:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4125:31:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4173:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 287, + "id": 300, + "nodeType": "Return", + "src": "4166:11:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "3697:296:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4007:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4023:7:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4015:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4015:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "value", + "nameLocation": "4040:5:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4032:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:32:1" + }, + "returnParameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4071:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4071:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4070:6:1" + }, + "scope": 651, + "src": "3998:186:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 728 + ], + "body": { + "id": 333, + "nodeType": "Block", + "src": "4869:151:1", + "statements": [ + { + "assignments": [ + 315 + ], + "declarations": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4887:7:1", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "4879:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 316, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4897:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4897:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 320, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 321, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "4941:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4950:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 319, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "4919:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 324, + "nodeType": "ExpressionStatement", + "src": "4919:37:1" + }, + { + "expression": { + "arguments": [ + { + "id": 326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4976:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 327, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "4982:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4986:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 325, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4966:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "4966:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5009:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 313, + "id": 332, + "nodeType": "Return", + "src": "5002:11:1" + } + ] + }, + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "4190:581:1", + "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4785:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "from", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4798:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4798:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "to", + "nameLocation": "4820:2:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4812:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "value", + "nameLocation": "4832:5:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4824:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4824:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:41:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 311, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4862:6:1" + }, + "scope": 651, + "src": "4776:244:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 380, + "nodeType": "Block", + "src": "5462:231:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5476:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5484:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5484:7:1", + "typeDescriptions": {} + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5476:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 358, + "nodeType": "IfStatement", + "src": "5472:86:1", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "5496:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5544:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5536:7:1", + "typeDescriptions": {} + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 350, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "5517:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "RevertStatement", + "src": "5510:37:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5571:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5577:7:1", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5577:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5571:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 373, + "nodeType": "IfStatement", + "src": "5567:86:1", + "trueBody": { + "id": 372, + "nodeType": "Block", + "src": "5589:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5631:7:1", + "typeDescriptions": {} + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5631:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 365, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5610:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5610:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "RevertStatement", + "src": "5603:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 375, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5670:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 376, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5676:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "5680:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 374, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "5662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5662:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "5662:24:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "5026:362:1", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5402:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "from", + "nameLocation": "5420:4:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5412:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5412:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "to", + "nameLocation": "5434:2:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5426:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5426:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "value", + "nameLocation": "5446:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5438:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5411:41:1" + }, + "returnParameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5462:0:1" + }, + "scope": 651, + "src": "5393:300:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "6083:1032:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6113:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6105:7:1", + "typeDescriptions": {} + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6097:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 428, + "nodeType": "Block", + "src": "6271:362:1", + "statements": [ + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6293:11:1", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6285:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 407, + "initialValue": { + "baseExpression": { + "id": 404, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 406, + "indexExpression": { + "id": 405, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6307:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6285:37:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 408, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6354:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6340:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 418, + "nodeType": "IfStatement", + "src": "6336:115:1", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "6361:90:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 412, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6411:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 413, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6430:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "6386:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6386:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "RevertStatement", + "src": "6379:57:1" + } + ] + } + }, + { + "id": 427, + "nodeType": "UncheckedBlock", + "src": "6464:159:1", + "statements": [ + { + "expression": { + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 419, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6581:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6571:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6589:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6589:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6571:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "6571:37:1" + } + ] + } + ] + }, + "id": 429, + "nodeType": "IfStatement", + "src": "6093:540:1", + "trueBody": { + "id": 401, + "nodeType": "Block", + "src": "6117:148:1", + "statements": [ + { + "expression": { + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 397, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6233:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6249:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6233:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "6233:21:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 430, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "6647:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6653:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:1", + "typeDescriptions": {} + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6647:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 449, + "nodeType": "Block", + "src": "6862:206:1", + "statements": [ + { + "id": 448, + "nodeType": "UncheckedBlock", + "src": "6876:182:1", + "statements": [ + { + "expression": { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 442, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "7021:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 444, + "indexExpression": { + "id": 443, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7021:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7038:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7021:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "7021:22:1" + } + ] + } + ] + }, + "id": 450, + "nodeType": "IfStatement", + "src": "6643:425:1", + "trueBody": { + "id": 441, + "nodeType": "Block", + "src": "6665:191:1", + "statements": [ + { + "id": 440, + "nodeType": "UncheckedBlock", + "src": "6679:167:1", + "statements": [ + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6810:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6826:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6810:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "6810:21:1" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 452, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "7092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 453, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7098:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7102:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 451, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "7083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7083:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "EmitStatement", + "src": "7078:30:1" + } + ] + }, + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "5699:304:1", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6017:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "from", + "nameLocation": "6033:4:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6025:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "to", + "nameLocation": "6047:2:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6039:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "value", + "nameLocation": "6059:5:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6024:41:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "6083:0:1" + }, + "scope": 651, + "src": "6008:1107:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 490, + "nodeType": "Block", + "src": "7514:152:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 466, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7547:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:1", + "typeDescriptions": {} + } + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7539:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7528:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 480, + "nodeType": "IfStatement", + "src": "7524:91:1", + "trueBody": { + "id": 479, + "nodeType": "Block", + "src": "7551:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7593:7:1", + "typeDescriptions": {} + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7593:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 472, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "7572:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7572:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "RevertStatement", + "src": "7565:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7640:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7632:7:1", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7632:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "7653:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 481, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "7624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7624:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "7624:35:1" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "7121:332:1", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7467:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "account", + "nameLocation": "7481:7:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7473:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "value", + "nameLocation": "7498:5:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7490:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7490:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7472:32:1" + }, + "returnParameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "7514:0:1" + }, + "scope": 651, + "src": "7458:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 523, + "nodeType": "Block", + "src": "8040:150:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 499, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8073:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8065:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8054:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 513, + "nodeType": "IfStatement", + "src": "8050:89:1", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "8077:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8125:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8117:7:1", + "typeDescriptions": {} + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8117:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 505, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "8098:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8098:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "RevertStatement", + "src": "8091:37:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 515, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8156:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8173:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8165:7:1", + "typeDescriptions": {} + } + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8165:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 520, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "8148:35:1" + } + ] + }, + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "7672:307:1", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "7993:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "account", + "nameLocation": "8007:7:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "7999:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7999:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "value", + "nameLocation": "8024:5:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "8016:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7998:32:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [], + "src": "8040:0:1" + }, + "scope": 651, + "src": "7984:206:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 541, + "nodeType": "Block", + "src": "8800:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "8819:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 536, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "8826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "8835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8842:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 534, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "8810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8810:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "8810:37:1" + } + ] + }, + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "8196:525:1", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 542, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8735:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8752:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8744:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8744:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8767:7:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8759:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "value", + "nameLocation": "8784:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8776:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8776:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8743:47:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "8800:0:1" + }, + "scope": 651, + "src": "8726:128:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 601, + "nodeType": "Block", + "src": "9799:334:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 554, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "9813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9830:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9822:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9822:7:1", + "typeDescriptions": {} + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9813:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 568, + "nodeType": "IfStatement", + "src": "9809:89:1", + "trueBody": { + "id": 567, + "nodeType": "Block", + "src": "9834:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9876:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9876:7:1", + "typeDescriptions": {} + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9876:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 560, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9855:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9855:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 566, + "nodeType": "RevertStatement", + "src": "9848:39:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 569, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "9911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:1", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9911:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "IfStatement", + "src": "9907:90:1", + "trueBody": { + "id": 582, + "nodeType": "Block", + "src": "9934:63:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:1", + "typeDescriptions": {} + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 575, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "9955:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9955:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 581, + "nodeType": "RevertStatement", + "src": "9948:38:1" + } + ] + } + }, + { + "expression": { + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 584, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "10006:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 587, + "indexExpression": { + "id": 585, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10018:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10006:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 588, + "indexExpression": { + "id": 586, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10006:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10036:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10006:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "10006:35:1" + }, + { + "condition": { + "id": 592, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "10055:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 600, + "nodeType": "IfStatement", + "src": "10051:76:1", + "trueBody": { + "id": 599, + "nodeType": "Block", + "src": "10066:61:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 594, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10094:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 595, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 593, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10085:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "EmitStatement", + "src": "10080:36:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "8860:836:1", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9710:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9727:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9719:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9719:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9742:7:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9734:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9734:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "value", + "nameLocation": "9759:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9751:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "9771:9:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9766:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 550, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9766:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9718:63:1" + }, + "returnParameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [], + "src": "9799:0:1" + }, + "scope": 651, + "src": "9701:432:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "10504:388:1", + "statements": [ + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10522:16:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "10514:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10558:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "10541:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10541:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10514:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 619, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10580:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10605:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10600:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10614:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10600:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10580:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 648, + "nodeType": "IfStatement", + "src": "10576:310:1", + "trueBody": { + "id": 647, + "nodeType": "Block", + "src": "10619:267:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10637:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10656:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10637:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 636, + "nodeType": "IfStatement", + "src": "10633:130:1", + "trueBody": { + "id": 635, + "nodeType": "Block", + "src": "10663:100:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 630, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 631, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10742:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "10688:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10688:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "RevertStatement", + "src": "10681:67:1" + } + ] + } + }, + { + "id": 646, + "nodeType": "UncheckedBlock", + "src": "10776:100:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 638, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 639, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10820:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 640, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10829:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10848:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10855:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 637, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "10804:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10804:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "10804:57:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 603, + "nodeType": "StructuredDocumentation", + "src": "10139:271:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10424:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10448:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10440:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10440:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10463:7:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10455:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10455:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "value", + "nameLocation": "10480:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10472:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10439:47:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [], + "src": "10504:0:1" + }, + "scope": 651, + "src": "10415:477:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 652, + "src": "1106:9788:1", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "105:10790:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ] + }, + "id": 730, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "132:71:2", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 729, + "linearizedBaseContracts": [ + 729 + ], + "name": "IERC20", + "nameLocation": "214:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "227:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 663, + "name": "Transfer", + "nameLocation": "396:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "405:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "427:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "447:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:2" + }, + "src": "390:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 664, + "nodeType": "StructuredDocumentation", + "src": "468:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 672, + "name": "Approval", + "nameLocation": "627:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 666, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "636:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "659:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "684:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:2" + }, + "src": "621:78:2" + }, + { + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "705:65:2", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:2" + }, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 678, + "src": "821:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:2" + }, + "scope": 729, + "src": "775:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "836:71:2", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 729, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "986:213:2", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1222:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1234:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1267:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:2" + }, + "scope": 729, + "src": "1204:69:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1279:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1567:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1582:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:2" + }, + "returnParameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1622:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:2" + }, + "scope": 729, + "src": "1548:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 707, + "nodeType": "StructuredDocumentation", + "src": "1637:667:2", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 716, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2326:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2343:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:2" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2376:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 713, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:2" + }, + "scope": 729, + "src": "2309:73:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 717, + "nodeType": "StructuredDocumentation", + "src": "2388:297:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2712:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2726:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2738:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:2" + }, + "returnParameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2771:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 725, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:2" + }, + "scope": 729, + "src": "2690:87:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 730, + "src": "204:2575:2", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "106:2674:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 731, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 733, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 756, + "sourceUnit": 730, + "src": "151:37:3", + "symbolAliases": [ + { + "foreign": { + "id": 732, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "159:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 735, + "name": "IERC20", + "nameLocations": [ + "306:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "306:6:3" + }, + "id": 736, + "nodeType": "InheritanceSpecifier", + "src": "306:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "190:87:3", + "text": " @dev Interface for the optional metadata functions from the ERC-20 standard." + }, + "fullyImplemented": false, + "id": 755, + "linearizedBaseContracts": [ + 755, + 729 + ], + "name": "IERC20Metadata", + "nameLocation": "288:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 737, + "nodeType": "StructuredDocumentation", + "src": "319:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "387:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "417:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 739, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "417:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "416:15:3" + }, + "scope": 755, + "src": "378:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 743, + "nodeType": "StructuredDocumentation", + "src": "438:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "508:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [], + "src": "514:2:3" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "540:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "539:15:3" + }, + "scope": 755, + "src": "499:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 749, + "nodeType": "StructuredDocumentation", + "src": "561:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "640:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "648:2:3" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "674:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "673:7:3" + }, + "scope": 755, + "src": "631:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 756, + "src": "278:405:3", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "125:559:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 785 + ] + }, + "id": 786, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "127:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 785, + "linearizedBaseContracts": [ + 785 + ], + "name": "Context", + "nameLocation": "642:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "718:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 763, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 762, + "id": 765, + "nodeType": "Return", + "src": "728:17:4" + } + ] + }, + "id": 767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:4" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "709:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:4" + }, + "scope": 785, + "src": "656:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "825:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 771, + "id": 774, + "nodeType": "Return", + "src": "835:15:4" + } + ] + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:4" + }, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "809:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 769, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:4" + }, + "scope": 785, + "src": "758:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 783, + "nodeType": "Block", + "src": "935:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 780, + "id": 782, + "nodeType": "Return", + "src": "945:8:4" + } + ] + }, + "id": 784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:4" + }, + "returnParameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 784, + "src": "926:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:4" + }, + "scope": 785, + "src": "863:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 786, + "src": "624:338:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:4" + }, + "id": 4 + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol", + "exportedSymbols": { + "AppleToken": [ + 812 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 813, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 787, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 788, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 813, + "sourceUnit": 652, + "src": "61:55:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 789, + "name": "ERC20", + "nameLocations": [ + "143:5:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "143:5:5" + }, + "id": 790, + "nodeType": "InheritanceSpecifier", + "src": "143:5:5" + } + ], + "canonicalName": "AppleToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 812, + "linearizedBaseContracts": [ + 812, + 651, + 41, + 755, + 729, + 785 + ], + "name": "AppleToken", + "nameLocation": "129:10:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "192:2:5", + "statements": [] + }, + "id": 798, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4170706c65", + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "176:7:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1", + "typeString": "literal_string \"Apple\"" + }, + "value": "Apple" + }, + { + "hexValue": "415054", + "id": 794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:5:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1", + "typeString": "literal_string \"APT\"" + }, + "value": "APT" + } + ], + "id": 795, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 792, + "name": "ERC20", + "nameLocations": [ + "170:5:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "170:5:5" + }, + "nodeType": "ModifierInvocation", + "src": "170:21:5" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 791, + "nodeType": "ParameterList", + "parameters": [], + "src": "167:2:5" + }, + "returnParameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:0:5" + }, + "scope": 812, + "src": "156:38:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 810, + "nodeType": "Block", + "src": "252:37:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 806, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "269:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 807, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 802, + "src": "274:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 805, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "263:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "263:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 809, + "nodeType": "ExpressionStatement", + "src": "263:18:5" + } + ] + }, + "functionSelector": "40c10f19", + "id": 811, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "211:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 800, + "mutability": "mutable", + "name": "_to", + "nameLocation": "224:3:5", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "216:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "216:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 802, + "mutability": "mutable", + "name": "amount", + "nameLocation": "237:6:5", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "229:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "229:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "215:29:5" + }, + "returnParameters": { + "id": 804, + "nodeType": "ParameterList", + "parameters": [], + "src": "252:0:5" + }, + "scope": 812, + "src": "202:87:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 813, + "src": "120:205:5", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:292:5" + }, + "id": 5 + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol", + "exportedSymbols": { + "CherryToken": [ + 839 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 840, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 814, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 815, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 840, + "sourceUnit": 652, + "src": "61:55:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 816, + "name": "ERC20", + "nameLocations": [ + "144:5:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "144:5:6" + }, + "id": 817, + "nodeType": "InheritanceSpecifier", + "src": "144:5:6" + } + ], + "canonicalName": "CherryToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 839, + "linearizedBaseContracts": [ + 839, + 651, + 41, + 755, + 729, + 785 + ], + "name": "CherryToken", + "nameLocation": "129:11:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 824, + "nodeType": "Block", + "src": "194:2:6", + "statements": [] + }, + "id": 825, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436865727279", + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "177:8:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f", + "typeString": "literal_string \"Cherry\"" + }, + "value": "Cherry" + }, + { + "hexValue": "434854", + "id": 821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "187:5:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18", + "typeString": "literal_string \"CHT\"" + }, + "value": "CHT" + } + ], + "id": 822, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 819, + "name": "ERC20", + "nameLocations": [ + "171:5:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "171:5:6" + }, + "nodeType": "ModifierInvocation", + "src": "171:22:6" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 818, + "nodeType": "ParameterList", + "parameters": [], + "src": "168:2:6" + }, + "returnParameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:6" + }, + "scope": 839, + "src": "157:39:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 837, + "nodeType": "Block", + "src": "254:37:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 833, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "271:3:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 834, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "276:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 832, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "265:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "265:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 836, + "nodeType": "ExpressionStatement", + "src": "265:18:6" + } + ] + }, + "functionSelector": "40c10f19", + "id": 838, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "213:4:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 827, + "mutability": "mutable", + "name": "_to", + "nameLocation": "226:3:6", + "nodeType": "VariableDeclaration", + "scope": 838, + "src": "218:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "amount", + "nameLocation": "239:6:6", + "nodeType": "VariableDeclaration", + "scope": 838, + "src": "231:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "231:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:29:6" + }, + "returnParameters": { + "id": 831, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:6" + }, + "scope": 839, + "src": "204:87:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 840, + "src": "120:207:6", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:294:6" + }, + "id": 6 + } + }, + "contracts": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "AppleToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_798": { + "entryPoint": null, + "id": 798, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:7" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:7", + "type": "" + } + ], + "src": "7:99:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:7", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:7" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:7", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:7" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:7", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:7" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:7" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:7", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:7", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:7" + }, + "nodeType": "YulIf", + "src": "623:81:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:7" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:7" + }, + "nodeType": "YulIf", + "src": "714:84:7" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:7", + "type": "" + } + ], + "src": "484:320:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:7", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:7" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:7", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:7" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:7" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:7", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:7" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:7" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:7" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:7", + "type": "" + } + ], + "src": "810:141:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:7" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:7", + "type": "" + } + ], + "src": "957:93:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:7", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:7" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:7" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:7" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:7" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:7", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:7", + "type": "" + } + ], + "src": "1056:107:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:7", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:7", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:7" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:7", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:7", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:7" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:7", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:7" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:7" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:7" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:7" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:7" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:7" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:7" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:7" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:7" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:7", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:7", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:7", + "type": "" + } + ], + "src": "1169:393:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:7", + "type": "" + } + ], + "src": "1568:77:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:7" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:7" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:7", + "type": "" + } + ], + "src": "1651:60:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:7" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:7" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:7" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:7" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:7", + "type": "" + } + ], + "src": "1717:142:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:7" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:7" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:7", + "type": "" + } + ], + "src": "1865:75:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:7", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:7" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:7" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:7" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:7" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:7" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:7" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:7" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:7" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:7" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:7" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:7", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:7", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:7", + "type": "" + } + ], + "src": "1946:269:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:7", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:7" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:7", + "type": "" + } + ], + "src": "2221:73:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:7", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:7" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:7" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:7" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:7" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:7" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:7", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:7", + "type": "" + } + ], + "src": "2300:189:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:7" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:7" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:7" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:7", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:7" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:7" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:7", + "statements": [] + }, + "src": "2555:120:7" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:7", + "type": "" + } + ], + "src": "2495:186:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:7", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:7" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:7" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:7" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:7", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:7" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:7" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:7" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:7", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:7" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:7" + }, + "nodeType": "YulIf", + "src": "3071:49:7" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:7" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:7" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:7" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:7" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:7" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:7" + }, + "nodeType": "YulIf", + "src": "2777:446:7" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:7", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:7", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:7", + "type": "" + } + ], + "src": "2687:543:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:7", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:7" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:7" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:7" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:7" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:7", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:7", + "type": "" + } + ], + "src": "3236:117:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:7", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:7" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:7" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:7" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:7" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:7" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:7" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:7" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:7", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:7", + "type": "" + } + ], + "src": "3359:169:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:7" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:7" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:7" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:7", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:7" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:7" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:7" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:7" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:7", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:7", + "type": "" + } + ], + "src": "3533:295:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:7", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:7" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:7" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:7" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:7", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:7" + }, + "nodeType": "YulIf", + "src": "4038:56:7" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:7" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:7" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:7" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:7" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:7" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:7" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:7" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:7" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:7" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:7", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:7" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:7", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:7", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:7" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:7", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:7" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:7" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:7" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:7" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:7" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:7", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:7" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:7", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:7" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:7" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:7" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:7", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:7" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:7" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:7", + "statements": [] + }, + "src": "4524:208:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:7" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:7" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:7" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:7" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:7", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:7" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:7" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:7" + }, + "nodeType": "YulIf", + "src": "4745:179:7" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:7", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:7" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:7", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:7" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:7" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:7" + }, + "nodeType": "YulIf", + "src": "5041:77:7" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:7" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:7" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:7" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:7" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:7", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:7" + }, + "nodeType": "YulSwitch", + "src": "4335:887:7" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:7", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:7", + "type": "" + } + ], + "src": "3833:1395:7" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 7, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:5:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:5;;7:99:7;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_811": { + "entryPoint": 798, + "id": 811, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:7" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:7", + "type": "" + } + ], + "src": "7:99:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:7" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:7" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:7" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:7" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:7", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:7", + "type": "" + } + ], + "src": "112:169:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:7" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:7" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:7" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:7" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:7", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:7" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:7" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:7", + "statements": [] + }, + "src": "378:113:7" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:7" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:7" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:7", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:7", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:7", + "type": "" + } + ], + "src": "287:246:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:7" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:7", + "type": "" + } + ], + "src": "539:102:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:7" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:7" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:7" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:7" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:7" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:7" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:7" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:7" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:7" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:7" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:7" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:7" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:7" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:7" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:7" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:7" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:7", + "type": "" + } + ], + "src": "647:377:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:7" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:7" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:7", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:7" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:7" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:7" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:7" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:7", + "type": "" + } + ], + "src": "1030:313:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:7", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:7" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:7" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:7", + "type": "" + } + ], + "src": "1349:75:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:7" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:7" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:7", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:7", + "type": "" + } + ], + "src": "1676:126:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:7", + "type": "" + } + ], + "src": "1808:96:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:7" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:7" + }, + "nodeType": "YulIf", + "src": "1963:63:7" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:7", + "type": "" + } + ], + "src": "1910:122:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:7", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:7" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:7" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:7" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:7" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:7" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:7", + "type": "" + } + ], + "src": "2038:139:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:7", + "type": "" + } + ], + "src": "2183:77:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:7" + }, + "nodeType": "YulIf", + "src": "2319:63:7" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:7", + "type": "" + } + ], + "src": "2266:122:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:7", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:7" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:7" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:7" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:7" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:7" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:7", + "type": "" + } + ], + "src": "2394:139:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:7" + }, + "nodeType": "YulIf", + "src": "2632:119:7" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:7", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:7" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:7", + "type": "" + } + ], + "src": "2539:474:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:7", + "type": "" + } + ], + "src": "3019:90:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:7" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:7" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:7" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:7", + "type": "" + } + ], + "src": "3115:109:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:7" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:7" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:7", + "type": "" + } + ], + "src": "3230:210:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:7" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:7", + "type": "" + } + ], + "src": "3446:118:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:7" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:7", + "type": "" + } + ], + "src": "3570:222:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:7", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:7" + }, + "nodeType": "YulIf", + "src": "3908:119:7" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:7", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:7" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:7", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:7" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:7", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:7", + "type": "" + } + ], + "src": "3798:619:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:7", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:7", + "type": "" + } + ], + "src": "4423:86:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:7" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:7" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:7", + "type": "" + } + ], + "src": "4515:112:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:7" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:7" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:7", + "type": "" + } + ], + "src": "4633:214:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:7" + }, + "nodeType": "YulIf", + "src": "4929:119:7" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:7", + "type": "" + } + ], + "src": "4853:329:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:7" + }, + "nodeType": "YulIf", + "src": "5281:119:7" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:7", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:7" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:7", + "type": "" + } + ], + "src": "5188:474:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:7", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:7" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:7", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:7" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:7" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:7", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:7", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:7" + }, + "nodeType": "YulIf", + "src": "5993:81:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:7" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:7" + }, + "nodeType": "YulIf", + "src": "6084:84:7" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:7", + "type": "" + } + ], + "src": "5854:320:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:7" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:7" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:7", + "type": "" + } + ], + "src": "6180:118:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:7", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:7" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:7" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:7" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:7", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:7", + "type": "" + } + ], + "src": "6304:442:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:7" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:7", + "type": "" + } + ], + "src": "6752:222:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:7", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:7" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:7", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:7" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:7", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:7" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:7", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:7" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:7" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:7" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:7" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:7" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:7" + }, + "nodeType": "YulIf", + "src": "7314:36:7" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:7", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:7", + "type": "" + } + ], + "src": "7166:191:7" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 7, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:5:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:7:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "CherryToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_825": { + "entryPoint": null, + "id": 825, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:7" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:7", + "type": "" + } + ], + "src": "7:99:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:7", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:7" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:7", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:7" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:7", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:7" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:7" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:7", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:7", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:7" + }, + "nodeType": "YulIf", + "src": "623:81:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:7" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:7" + }, + "nodeType": "YulIf", + "src": "714:84:7" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:7", + "type": "" + } + ], + "src": "484:320:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:7", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:7" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:7", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:7" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:7" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:7", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:7" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:7" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:7" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:7", + "type": "" + } + ], + "src": "810:141:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:7" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:7", + "type": "" + } + ], + "src": "957:93:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:7", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:7" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:7" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:7" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:7" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:7", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:7", + "type": "" + } + ], + "src": "1056:107:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:7", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:7", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:7" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:7", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:7", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:7" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:7", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:7" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:7" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:7" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:7" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:7" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:7" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:7" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:7" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:7" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:7", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:7", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:7", + "type": "" + } + ], + "src": "1169:393:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:7", + "type": "" + } + ], + "src": "1568:77:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:7" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:7" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:7", + "type": "" + } + ], + "src": "1651:60:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:7" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:7" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:7" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:7" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:7", + "type": "" + } + ], + "src": "1717:142:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:7" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:7" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:7", + "type": "" + } + ], + "src": "1865:75:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:7", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:7" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:7" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:7" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:7" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:7" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:7" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:7" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:7" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:7" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:7" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:7", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:7", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:7", + "type": "" + } + ], + "src": "1946:269:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:7", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:7" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:7", + "type": "" + } + ], + "src": "2221:73:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:7", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:7" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:7" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:7" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:7" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:7" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:7", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:7", + "type": "" + } + ], + "src": "2300:189:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:7" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:7" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:7" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:7", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:7" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:7" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:7", + "statements": [] + }, + "src": "2555:120:7" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:7", + "type": "" + } + ], + "src": "2495:186:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:7", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:7" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:7" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:7" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:7", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:7" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:7" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:7" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:7", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:7" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:7" + }, + "nodeType": "YulIf", + "src": "3071:49:7" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:7" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:7" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:7" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:7" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:7" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:7" + }, + "nodeType": "YulIf", + "src": "2777:446:7" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:7", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:7", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:7", + "type": "" + } + ], + "src": "2687:543:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:7", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:7" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:7" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:7" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:7" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:7", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:7", + "type": "" + } + ], + "src": "3236:117:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:7", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:7" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:7" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:7" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:7" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:7" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:7" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:7" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:7", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:7", + "type": "" + } + ], + "src": "3359:169:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:7" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:7" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:7" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:7", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:7" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:7" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:7" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:7" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:7", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:7", + "type": "" + } + ], + "src": "3533:295:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:7", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:7" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:7" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:7" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:7", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:7" + }, + "nodeType": "YulIf", + "src": "4038:56:7" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:7" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:7" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:7" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:7" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:7" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:7" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:7" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:7" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:7" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:7", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:7" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:7", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:7", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:7" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:7", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:7" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:7" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:7" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:7" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:7" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:7", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:7" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:7", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:7" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:7" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:7" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:7", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:7" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:7" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:7", + "statements": [] + }, + "src": "4524:208:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:7" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:7" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:7", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:7" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:7" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:7", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:7" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:7" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:7" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:7" + }, + "nodeType": "YulIf", + "src": "4745:179:7" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:7", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:7" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:7", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:7" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:7" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:7" + }, + "nodeType": "YulIf", + "src": "5041:77:7" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:7" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:7" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:7" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:7" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:7" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:7", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:7" + }, + "nodeType": "YulSwitch", + "src": "4335:887:7" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:7", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:7", + "type": "" + } + ], + "src": "3833:1395:7" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 7, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:6:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:6;;7:99:7;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:6:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_838": { + "entryPoint": 798, + "id": 838, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:7" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:7", + "type": "" + } + ], + "src": "7:99:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:7" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:7" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:7" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:7" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:7", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:7", + "type": "" + } + ], + "src": "112:169:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:7" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:7" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:7" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:7" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:7" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:7" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:7" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:7", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:7" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:7" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:7", + "statements": [] + }, + "src": "378:113:7" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:7" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:7" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:7", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:7", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:7", + "type": "" + } + ], + "src": "287:246:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:7" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:7", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:7" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:7" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:7" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:7", + "type": "" + } + ], + "src": "539:102:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:7" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:7" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:7" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:7" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:7" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:7" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:7" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:7" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:7" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:7" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:7" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:7" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:7", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:7" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:7" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:7" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:7" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:7" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:7", + "type": "" + } + ], + "src": "647:377:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:7" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:7" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:7", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:7" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:7" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:7" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:7" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:7", + "type": "" + } + ], + "src": "1030:313:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:7", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:7" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:7" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:7" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:7", + "type": "" + } + ], + "src": "1349:75:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:7" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:7" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:7", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:7", + "type": "" + } + ], + "src": "1676:126:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:7", + "type": "" + } + ], + "src": "1808:96:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:7" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:7" + }, + "nodeType": "YulIf", + "src": "1963:63:7" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:7", + "type": "" + } + ], + "src": "1910:122:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:7", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:7" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:7" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:7" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:7" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:7" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:7", + "type": "" + } + ], + "src": "2038:139:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:7", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:7", + "type": "" + } + ], + "src": "2183:77:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:7" + }, + "nodeType": "YulIf", + "src": "2319:63:7" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:7", + "type": "" + } + ], + "src": "2266:122:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:7", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:7" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:7" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:7" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:7" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:7" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:7" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:7", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:7", + "type": "" + } + ], + "src": "2394:139:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:7" + }, + "nodeType": "YulIf", + "src": "2632:119:7" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:7", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:7" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:7", + "type": "" + } + ], + "src": "2539:474:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:7", + "type": "" + } + ], + "src": "3019:90:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:7" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:7" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:7" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:7", + "type": "" + } + ], + "src": "3115:109:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:7" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:7" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:7", + "type": "" + } + ], + "src": "3230:210:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:7" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:7", + "type": "" + } + ], + "src": "3446:118:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:7" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:7", + "type": "" + } + ], + "src": "3570:222:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:7", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:7" + }, + "nodeType": "YulIf", + "src": "3908:119:7" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:7", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:7" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:7", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:7" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:7", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:7", + "type": "" + } + ], + "src": "3798:619:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:7", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:7", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:7" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:7" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:7", + "type": "" + } + ], + "src": "4423:86:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:7" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:7" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:7" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:7", + "type": "" + } + ], + "src": "4515:112:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:7" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:7" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:7", + "type": "" + } + ], + "src": "4633:214:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:7" + }, + "nodeType": "YulIf", + "src": "4929:119:7" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:7", + "type": "" + } + ], + "src": "4853:329:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:7", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:7" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:7" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:7" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:7" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:7" + }, + "nodeType": "YulIf", + "src": "5281:119:7" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:7", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:7" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:7" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:7", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:7", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:7", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:7", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:7" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:7" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:7" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:7" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:7" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:7" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:7", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:7", + "type": "" + } + ], + "src": "5188:474:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:7", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:7" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:7", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:7" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:7", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:7", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:7" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:7", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:7", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:7", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:7" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:7" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:7" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:7" + }, + "nodeType": "YulIf", + "src": "5993:81:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:7" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:7" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:7" + }, + "nodeType": "YulIf", + "src": "6084:84:7" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:7", + "type": "" + } + ], + "src": "5854:320:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:7" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:7" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:7" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:7" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:7", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:7", + "type": "" + } + ], + "src": "6180:118:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:7", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:7" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:7" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:7", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:7" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:7" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:7", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:7", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:7", + "type": "" + } + ], + "src": "6304:442:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:7", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:7", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:7" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:7" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:7" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:7" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:7", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:7" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:7" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:7" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:7" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:7", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:7", + "type": "" + } + ], + "src": "6752:222:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:7", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:7", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:7", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:7" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:7", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:7" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:7" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:7" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:7", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:7", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:7" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:7", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:7" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:7" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:7" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:7" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:7", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:7" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:7" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:7" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:7" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:7" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:7", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:7" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:7" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:7" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:7" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:7" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:7" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:7" + }, + "nodeType": "YulIf", + "src": "7314:36:7" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:7", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:7", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:7", + "type": "" + } + ], + "src": "7166:191:7" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 7, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:6:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:7:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/build-info/6919de14a125c32fee1b7b138baa53da.json b/Core uniswap/ignition/deployments/chain-11155111/build-info/6919de14a125c32fee1b7b138baa53da.json new file mode 100644 index 00000000..39080d8c --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/build-info/6919de14a125c32fee1b7b138baa53da.json @@ -0,0 +1,79796 @@ +{ + "id": "6919de14a125c32fee1b7b138baa53da", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "contracts/core/Factory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}" + }, + "contracts/core/interfaces/IFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}" + }, + "contracts/core/interfaces/IPool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}" + }, + "contracts/core/interfaces/IWedu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}" + }, + "contracts/core/libraries/Library.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}" + }, + "contracts/core/LiquidityProvider.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}" + }, + "contracts/core/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}" + }, + "contracts/core/Pool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}" + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEduToken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n // function deposit(uint256 amount) public payable {\r\n // _mint(msg.sender, amount);\r\n // }\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2397, + "file": "contracts/core/Pool.sol", + "start": 2380 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2416, + "file": "contracts/core/Pool.sol", + "start": 2399 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4393, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4375 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4413, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4395 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 136 + ], + "IERC20Errors": [ + 41 + ], + "IERC721Errors": [ + 89 + ] + }, + "id": 137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "138:141:0", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 41, + "linearizedBaseContracts": [ + 41 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "309:309:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 11, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "654:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "670:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "687:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:0" + }, + "src": "623:80:0" + }, + { + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "709:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 16, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "891:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:0" + }, + "src": "866:41:0" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "913:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 21, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "1104:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "src": "1077:45:0" + }, + { + "documentation": { + "id": 22, + "nodeType": "StructuredDocumentation", + "src": "1128:345:0", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 30, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1511:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1528:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1547:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:0" + }, + "src": "1478:85:0" + }, + { + "documentation": { + "id": 31, + "nodeType": "StructuredDocumentation", + "src": "1569:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 35, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1775:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:0" + }, + "src": "1748:45:0" + }, + { + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "1799:195:0", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 40, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:0" + }, + "src": "1999:43:0" + } + ], + "scope": 137, + "src": "280:1764:0", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 42, + "nodeType": "StructuredDocumentation", + "src": "2046:143:0", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2220:219:0", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 47, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:0", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "2469:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:0" + }, + "src": "2444:40:0" + }, + { + "documentation": { + "id": 48, + "nodeType": "StructuredDocumentation", + "src": "2490:132:0", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 52, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2656:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:0" + }, + "src": "2627:46:0" + }, + { + "documentation": { + "id": 53, + "nodeType": "StructuredDocumentation", + "src": "2679:289:0", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 61, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3000:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3016:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3033:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:0" + }, + "src": "2973:75:0" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "3054:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 66, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "3237:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 63, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:0" + }, + "src": "3211:42:0" + }, + { + "documentation": { + "id": 67, + "nodeType": "StructuredDocumentation", + "src": "3259:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 71, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "3451:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:0" + }, + "src": "3423:46:0" + }, + { + "documentation": { + "id": 72, + "nodeType": "StructuredDocumentation", + "src": "3475:247:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 78, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3760:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3778:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:0" + }, + "src": "3727:68:0" + }, + { + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "3801:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 83, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "4008:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:0" + }, + "src": "3980:46:0" + }, + { + "documentation": { + "id": 84, + "nodeType": "StructuredDocumentation", + "src": "4032:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 88, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "4262:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:0" + }, + "src": "4234:46:0" + } + ], + "scope": 137, + "src": "2190:2092:0", + "usedErrors": [ + 47, + 52, + 61, + 66, + 71, + 78, + 83, + 88 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 90, + "nodeType": "StructuredDocumentation", + "src": "4284:145:0", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "4461:361:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 101, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4860:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4876:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4893:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4909:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:0" + }, + "src": "4827:99:0" + }, + { + "documentation": { + "id": 102, + "nodeType": "StructuredDocumentation", + "src": "4932:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 106, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "5116:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:0" + }, + "src": "5089:43:0" + }, + { + "documentation": { + "id": 107, + "nodeType": "StructuredDocumentation", + "src": "5138:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 111, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "5331:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:0" + }, + "src": "5302:47:0" + }, + { + "documentation": { + "id": 112, + "nodeType": "StructuredDocumentation", + "src": "5355:256:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 118, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:0" + }, + "src": "5616:68:0" + }, + { + "documentation": { + "id": 119, + "nodeType": "StructuredDocumentation", + "src": "5690:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 123, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:0", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "5898:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:0" + }, + "src": "5869:47:0" + }, + { + "documentation": { + "id": 124, + "nodeType": "StructuredDocumentation", + "src": "5922:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 128, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "6153:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:0" + }, + "src": "6124:47:0" + }, + { + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "6177:280:0", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 135, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6494:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6513:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:0" + }, + "src": "6462:73:0" + } + ], + "scope": 137, + "src": "4430:2107:0", + "usedErrors": [ + 101, + 106, + 111, + 118, + 123, + 128, + 135 + ], + "usedEvents": [] + } + ], + "src": "112:6426:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 140, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 730, + "src": "131:36:1", + "symbolAliases": [ + { + "foreign": { + "id": 139, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "139:6:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 142, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 756, + "src": "168:63:1", + "symbolAliases": [ + { + "foreign": { + "id": 141, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "176:14:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 144, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 786, + "src": "232:48:1", + "symbolAliases": [ + { + "foreign": { + "id": 143, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "240:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 146, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 137, + "src": "281:65:1", + "symbolAliases": [ + { + "foreign": { + "id": 145, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "289:12:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 148, + "name": "Context", + "nameLocations": [ + "1133:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 785, + "src": "1133:7:1" + }, + "id": 149, + "nodeType": "InheritanceSpecifier", + "src": "1133:7:1" + }, + { + "baseName": { + "id": 150, + "name": "IERC20", + "nameLocations": [ + "1142:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "1142:6:1" + }, + "id": 151, + "nodeType": "InheritanceSpecifier", + "src": "1142:6:1" + }, + { + "baseName": { + "id": 152, + "name": "IERC20Metadata", + "nameLocations": [ + "1150:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 755, + "src": "1150:14:1" + }, + "id": 153, + "nodeType": "InheritanceSpecifier", + "src": "1150:14:1" + }, + { + "baseName": { + "id": 154, + "name": "IERC20Errors", + "nameLocations": [ + "1166:12:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "1166:12:1" + }, + "id": 155, + "nodeType": "InheritanceSpecifier", + "src": "1166:12:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "348:757:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications." + }, + "fullyImplemented": true, + "id": 651, + "linearizedBaseContracts": [ + 651, + 41, + 755, + 729, + 785 + ], + "name": "ERC20", + "nameLocation": "1124:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1229:9:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1185:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 158, + "keyName": "account", + "keyNameLocation": "1201:7:1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1185:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1317:11:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1245:83:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 164, + "keyName": "account", + "keyNameLocation": "1261:7:1", + "keyType": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1245:63:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 163, + "keyName": "spender", + "keyNameLocation": "1288:7:1", + "keyType": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1272:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1351:12:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1335:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1385:5:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1370:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1370:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1411:7:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1396:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 170, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 187, + "nodeType": "Block", + "src": "1657:57:1", + "statements": [ + { + "expression": { + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 179, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 180, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "1675:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1667:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "1667:13:1" + }, + { + "expression": { + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "1690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 184, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "1700:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1690:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "1690:17:1" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "1425:171:1", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 188, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1627:5:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1613:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 173, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1613:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1648:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1634:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1634:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1612:44:1" + }, + "returnParameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1657:0:1" + }, + "scope": 651, + "src": "1601:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 742 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "1839:29:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1856:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "1849:12:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "1720:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "1788:4:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1792:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "1824:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1824:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1823:15:1" + }, + "scope": 651, + "src": "1779:89:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 748 + ], + "body": { + "id": 205, + "nodeType": "Block", + "src": "2043:31:1", + "statements": [ + { + "expression": { + "id": 203, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 202, + "id": 204, + "nodeType": "Return", + "src": "2053:14:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "1874:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "1990:6:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:1" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2028:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2028:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2027:15:1" + }, + "scope": 651, + "src": "1981:93:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 214, + "nodeType": "Block", + "src": "2763:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2780:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 211, + "id": 213, + "nodeType": "Return", + "src": "2773:9:1" + } + ] + }, + "documentation": { + "id": 207, + "nodeType": "StructuredDocumentation", + "src": "2080:622:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2716:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [], + "src": "2724:2:1" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2756:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 209, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2756:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2755:7:1" + }, + "scope": 651, + "src": "2707:82:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 678 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "2910:36:1", + "statements": [ + { + "expression": { + "id": 221, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2927:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 220, + "id": 222, + "nodeType": "Return", + "src": "2920:19:1" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "2795:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2858:11:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:2:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "2901:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2900:9:1" + }, + "scope": 651, + "src": "2849:97:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 236, + "nodeType": "Block", + "src": "3078:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "3095:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3095:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 231, + "id": 235, + "nodeType": "Return", + "src": "3088:25:1" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "2952:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3013:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "account", + "nameLocation": "3031:7:1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3022:17:1" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3068:9:1" + }, + "scope": 651, + "src": "3004:116:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 260, + "nodeType": "Block", + "src": "3390:103:1", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3408:5:1", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "3400:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 249, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3416:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3400:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 254, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3455:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3459:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3438:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3438:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "3438:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 246, + "id": 259, + "nodeType": "Return", + "src": "3475:11:1" + } + ] + }, + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3126:184:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3324:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "to", + "nameLocation": "3341:2:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3333:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "value", + "nameLocation": "3353:5:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3345:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3332:27:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3384:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3384:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3383:6:1" + }, + "scope": 651, + "src": "3315:178:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 706 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "3640:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 271, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 272, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "3669:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "3676:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 270, + "id": 276, + "nodeType": "Return", + "src": "3650:34:1" + } + ] + }, + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "3499:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3560:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3578:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3570:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3570:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3593:7:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3585:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3569:32:1" + }, + "returnParameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3631:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3630:9:1" + }, + "scope": 651, + "src": "3551:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 716 + ], + "body": { + "id": 301, + "nodeType": "Block", + "src": "4077:107:1", + "statements": [ + { + "assignments": [ + 289 + ], + "declarations": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4095:5:1", + "nodeType": "VariableDeclaration", + "scope": 301, + "src": "4087:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4087:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 292, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 290, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4103:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4103:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4087:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 294, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4134:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 295, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4150:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 293, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 542, + "src": "4125:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4125:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4125:31:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4173:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 287, + "id": 300, + "nodeType": "Return", + "src": "4166:11:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "3697:296:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4007:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4023:7:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4015:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4015:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "value", + "nameLocation": "4040:5:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4032:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:32:1" + }, + "returnParameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4071:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4071:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4070:6:1" + }, + "scope": 651, + "src": "3998:186:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 728 + ], + "body": { + "id": 333, + "nodeType": "Block", + "src": "4869:151:1", + "statements": [ + { + "assignments": [ + 315 + ], + "declarations": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4887:7:1", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "4879:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 316, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4897:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4897:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 320, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 321, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "4941:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4950:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 319, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "4919:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 324, + "nodeType": "ExpressionStatement", + "src": "4919:37:1" + }, + { + "expression": { + "arguments": [ + { + "id": 326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4976:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 327, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "4982:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4986:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 325, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4966:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "4966:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5009:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 313, + "id": 332, + "nodeType": "Return", + "src": "5002:11:1" + } + ] + }, + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "4190:581:1", + "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4785:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "from", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4798:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4798:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "to", + "nameLocation": "4820:2:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4812:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "value", + "nameLocation": "4832:5:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4824:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4824:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:41:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 311, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4862:6:1" + }, + "scope": 651, + "src": "4776:244:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 380, + "nodeType": "Block", + "src": "5462:231:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5476:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5484:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5484:7:1", + "typeDescriptions": {} + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5476:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 358, + "nodeType": "IfStatement", + "src": "5472:86:1", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "5496:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5544:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5536:7:1", + "typeDescriptions": {} + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 350, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "5517:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "RevertStatement", + "src": "5510:37:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5571:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5577:7:1", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5577:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5571:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 373, + "nodeType": "IfStatement", + "src": "5567:86:1", + "trueBody": { + "id": 372, + "nodeType": "Block", + "src": "5589:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5631:7:1", + "typeDescriptions": {} + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5631:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 365, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5610:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5610:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "RevertStatement", + "src": "5603:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 375, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5670:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 376, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5676:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "5680:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 374, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "5662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5662:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "5662:24:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "5026:362:1", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5402:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "from", + "nameLocation": "5420:4:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5412:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5412:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "to", + "nameLocation": "5434:2:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5426:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5426:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "value", + "nameLocation": "5446:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5438:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5411:41:1" + }, + "returnParameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5462:0:1" + }, + "scope": 651, + "src": "5393:300:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "6083:1032:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6113:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6105:7:1", + "typeDescriptions": {} + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6097:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 428, + "nodeType": "Block", + "src": "6271:362:1", + "statements": [ + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6293:11:1", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6285:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 407, + "initialValue": { + "baseExpression": { + "id": 404, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 406, + "indexExpression": { + "id": 405, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6307:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6285:37:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 408, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6354:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6340:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 418, + "nodeType": "IfStatement", + "src": "6336:115:1", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "6361:90:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 412, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6411:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 413, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6430:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "6386:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6386:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "RevertStatement", + "src": "6379:57:1" + } + ] + } + }, + { + "id": 427, + "nodeType": "UncheckedBlock", + "src": "6464:159:1", + "statements": [ + { + "expression": { + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 419, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6581:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6571:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6589:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6589:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6571:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "6571:37:1" + } + ] + } + ] + }, + "id": 429, + "nodeType": "IfStatement", + "src": "6093:540:1", + "trueBody": { + "id": 401, + "nodeType": "Block", + "src": "6117:148:1", + "statements": [ + { + "expression": { + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 397, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6233:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6249:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6233:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "6233:21:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 430, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "6647:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6653:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:1", + "typeDescriptions": {} + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6647:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 449, + "nodeType": "Block", + "src": "6862:206:1", + "statements": [ + { + "id": 448, + "nodeType": "UncheckedBlock", + "src": "6876:182:1", + "statements": [ + { + "expression": { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 442, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "7021:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 444, + "indexExpression": { + "id": 443, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7021:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7038:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7021:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "7021:22:1" + } + ] + } + ] + }, + "id": 450, + "nodeType": "IfStatement", + "src": "6643:425:1", + "trueBody": { + "id": 441, + "nodeType": "Block", + "src": "6665:191:1", + "statements": [ + { + "id": 440, + "nodeType": "UncheckedBlock", + "src": "6679:167:1", + "statements": [ + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6810:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6826:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6810:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "6810:21:1" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 452, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "7092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 453, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7098:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7102:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 451, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "7083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7083:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "EmitStatement", + "src": "7078:30:1" + } + ] + }, + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "5699:304:1", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6017:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "from", + "nameLocation": "6033:4:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6025:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "to", + "nameLocation": "6047:2:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6039:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "value", + "nameLocation": "6059:5:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6024:41:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "6083:0:1" + }, + "scope": 651, + "src": "6008:1107:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 490, + "nodeType": "Block", + "src": "7514:152:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 466, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7547:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:1", + "typeDescriptions": {} + } + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7539:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7528:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 480, + "nodeType": "IfStatement", + "src": "7524:91:1", + "trueBody": { + "id": 479, + "nodeType": "Block", + "src": "7551:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7593:7:1", + "typeDescriptions": {} + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7593:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 472, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "7572:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7572:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "RevertStatement", + "src": "7565:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7640:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7632:7:1", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7632:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "7653:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 481, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "7624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7624:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "7624:35:1" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "7121:332:1", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7467:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "account", + "nameLocation": "7481:7:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7473:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "value", + "nameLocation": "7498:5:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7490:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7490:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7472:32:1" + }, + "returnParameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "7514:0:1" + }, + "scope": 651, + "src": "7458:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 523, + "nodeType": "Block", + "src": "8040:150:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 499, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8073:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8065:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8054:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 513, + "nodeType": "IfStatement", + "src": "8050:89:1", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "8077:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8125:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8117:7:1", + "typeDescriptions": {} + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8117:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 505, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "8098:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8098:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "RevertStatement", + "src": "8091:37:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 515, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8156:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8173:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8165:7:1", + "typeDescriptions": {} + } + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8165:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 520, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "8148:35:1" + } + ] + }, + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "7672:307:1", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "7993:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "account", + "nameLocation": "8007:7:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "7999:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7999:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "value", + "nameLocation": "8024:5:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "8016:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7998:32:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [], + "src": "8040:0:1" + }, + "scope": 651, + "src": "7984:206:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 541, + "nodeType": "Block", + "src": "8800:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "8819:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 536, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "8826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "8835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8842:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 534, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "8810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8810:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "8810:37:1" + } + ] + }, + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "8196:525:1", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 542, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8735:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8752:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8744:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8744:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8767:7:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8759:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "value", + "nameLocation": "8784:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8776:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8776:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8743:47:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "8800:0:1" + }, + "scope": 651, + "src": "8726:128:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 601, + "nodeType": "Block", + "src": "9799:334:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 554, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "9813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9830:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9822:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9822:7:1", + "typeDescriptions": {} + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9813:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 568, + "nodeType": "IfStatement", + "src": "9809:89:1", + "trueBody": { + "id": 567, + "nodeType": "Block", + "src": "9834:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9876:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9876:7:1", + "typeDescriptions": {} + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9876:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 560, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9855:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9855:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 566, + "nodeType": "RevertStatement", + "src": "9848:39:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 569, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "9911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:1", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9911:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "IfStatement", + "src": "9907:90:1", + "trueBody": { + "id": 582, + "nodeType": "Block", + "src": "9934:63:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:1", + "typeDescriptions": {} + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 575, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "9955:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9955:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 581, + "nodeType": "RevertStatement", + "src": "9948:38:1" + } + ] + } + }, + { + "expression": { + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 584, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "10006:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 587, + "indexExpression": { + "id": 585, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10018:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10006:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 588, + "indexExpression": { + "id": 586, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10006:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10036:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10006:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "10006:35:1" + }, + { + "condition": { + "id": 592, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "10055:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 600, + "nodeType": "IfStatement", + "src": "10051:76:1", + "trueBody": { + "id": 599, + "nodeType": "Block", + "src": "10066:61:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 594, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10094:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 595, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 593, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10085:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "EmitStatement", + "src": "10080:36:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "8860:836:1", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9710:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9727:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9719:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9719:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9742:7:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9734:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9734:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "value", + "nameLocation": "9759:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9751:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "9771:9:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9766:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 550, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9766:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9718:63:1" + }, + "returnParameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [], + "src": "9799:0:1" + }, + "scope": 651, + "src": "9701:432:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "10504:388:1", + "statements": [ + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10522:16:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "10514:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10558:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "10541:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10541:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10514:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 619, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10580:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10605:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10600:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10614:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10600:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10580:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 648, + "nodeType": "IfStatement", + "src": "10576:310:1", + "trueBody": { + "id": 647, + "nodeType": "Block", + "src": "10619:267:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10637:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10656:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10637:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 636, + "nodeType": "IfStatement", + "src": "10633:130:1", + "trueBody": { + "id": 635, + "nodeType": "Block", + "src": "10663:100:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 630, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 631, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10742:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "10688:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10688:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "RevertStatement", + "src": "10681:67:1" + } + ] + } + }, + { + "id": 646, + "nodeType": "UncheckedBlock", + "src": "10776:100:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 638, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 639, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10820:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 640, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10829:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10848:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10855:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 637, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "10804:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10804:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "10804:57:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 603, + "nodeType": "StructuredDocumentation", + "src": "10139:271:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10424:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10448:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10440:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10440:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10463:7:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10455:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10455:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "value", + "nameLocation": "10480:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10472:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10439:47:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [], + "src": "10504:0:1" + }, + "scope": 651, + "src": "10415:477:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 652, + "src": "1106:9788:1", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "105:10790:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ] + }, + "id": 730, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "132:71:2", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 729, + "linearizedBaseContracts": [ + 729 + ], + "name": "IERC20", + "nameLocation": "214:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "227:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 663, + "name": "Transfer", + "nameLocation": "396:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "405:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "427:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "447:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:2" + }, + "src": "390:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 664, + "nodeType": "StructuredDocumentation", + "src": "468:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 672, + "name": "Approval", + "nameLocation": "627:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 666, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "636:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "659:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "684:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:2" + }, + "src": "621:78:2" + }, + { + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "705:65:2", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:2" + }, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 678, + "src": "821:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:2" + }, + "scope": 729, + "src": "775:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "836:71:2", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 729, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "986:213:2", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1222:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1234:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1267:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:2" + }, + "scope": 729, + "src": "1204:69:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1279:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1567:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1582:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:2" + }, + "returnParameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1622:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:2" + }, + "scope": 729, + "src": "1548:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 707, + "nodeType": "StructuredDocumentation", + "src": "1637:667:2", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 716, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2326:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2343:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:2" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2376:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 713, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:2" + }, + "scope": 729, + "src": "2309:73:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 717, + "nodeType": "StructuredDocumentation", + "src": "2388:297:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2712:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2726:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2738:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:2" + }, + "returnParameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2771:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 725, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:2" + }, + "scope": 729, + "src": "2690:87:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 730, + "src": "204:2575:2", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "106:2674:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 731, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 733, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 756, + "sourceUnit": 730, + "src": "151:37:3", + "symbolAliases": [ + { + "foreign": { + "id": 732, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "159:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 735, + "name": "IERC20", + "nameLocations": [ + "306:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "306:6:3" + }, + "id": 736, + "nodeType": "InheritanceSpecifier", + "src": "306:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "190:87:3", + "text": " @dev Interface for the optional metadata functions from the ERC-20 standard." + }, + "fullyImplemented": false, + "id": 755, + "linearizedBaseContracts": [ + 755, + 729 + ], + "name": "IERC20Metadata", + "nameLocation": "288:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 737, + "nodeType": "StructuredDocumentation", + "src": "319:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "387:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "417:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 739, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "417:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "416:15:3" + }, + "scope": 755, + "src": "378:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 743, + "nodeType": "StructuredDocumentation", + "src": "438:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "508:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [], + "src": "514:2:3" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "540:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "539:15:3" + }, + "scope": 755, + "src": "499:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 749, + "nodeType": "StructuredDocumentation", + "src": "561:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "640:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "648:2:3" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "674:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "673:7:3" + }, + "scope": 755, + "src": "631:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 756, + "src": "278:405:3", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "125:559:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 785 + ] + }, + "id": 786, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "127:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 785, + "linearizedBaseContracts": [ + 785 + ], + "name": "Context", + "nameLocation": "642:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "718:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 763, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 762, + "id": 765, + "nodeType": "Return", + "src": "728:17:4" + } + ] + }, + "id": 767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:4" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "709:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:4" + }, + "scope": 785, + "src": "656:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "825:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 771, + "id": 774, + "nodeType": "Return", + "src": "835:15:4" + } + ] + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:4" + }, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "809:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 769, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:4" + }, + "scope": 785, + "src": "758:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 783, + "nodeType": "Block", + "src": "935:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 780, + "id": 782, + "nodeType": "Return", + "src": "945:8:4" + } + ] + }, + "id": 784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:4" + }, + "returnParameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 784, + "src": "926:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:4" + }, + "scope": 785, + "src": "863:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 786, + "src": "624:338:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:4" + }, + "id": 4 + }, + "contracts/core/Factory.sol": { + "ast": { + "absolutePath": "contracts/core/Factory.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "IPool": [ + 2166 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory": [ + 1019 + ], + "PoolFactory__IdenticalAddress": [ + 791 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ], + "PoolFactory__NotSetter": [ + 797 + ], + "PoolFactory__PoolExists": [ + 795 + ], + "PoolFactory__ZeroAddress": [ + 793 + ] + }, + "id": 1020, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 787, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 788, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2167, + "src": "60:32:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Pool.sol", + "file": "./Pool.sol", + "id": 789, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2104, + "src": "94:20:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "4bea99d9", + "id": 791, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "124:29:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [], + "src": "153:2:5" + }, + "src": "118:38:5" + }, + { + "errorSelector": "74b959e9", + "id": 793, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "164:24:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:5" + }, + "src": "158:33:5" + }, + { + "errorSelector": "423d7935", + "id": 795, + "name": "PoolFactory__PoolExists", + "nameLocation": "199:23:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:5" + }, + "src": "193:32:5" + }, + { + "errorSelector": "e9e17318", + "id": 797, + "name": "PoolFactory__NotSetter", + "nameLocation": "233:22:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "255:2:5" + }, + "src": "227:31:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoolFactory", + "contractDependencies": [ + 2103 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1019, + "linearizedBaseContracts": [ + 1019 + ], + "name": "PoolFactory", + "nameLocation": "271:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "feeReceiver", + "nameLocation": "306:11:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "290:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "290:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 803, + "mutability": "mutable", + "name": "feeReceiverSetter", + "nameLocation": "357:17:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "324:50:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 802, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "324:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "343:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 809, + "mutability": "mutable", + "name": "getPairs", + "nameLocation": "439:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "383:64:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 808, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "383:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 807, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "410:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "402:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "421:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "allPairs", + "nameLocation": "472:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "454:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 811, + "nodeType": "ArrayTypeName", + "src": "454:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b", + "id": 820, + "name": "PoolCreated", + "nameLocation": "495:11:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": false, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "515:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "507:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "507:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": false, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "531:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "523:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "547:11:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "539:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "506:53:5" + }, + "src": "489:71:5" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "608:63:5", + "statements": [ + { + "expression": { + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "619:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 822, + "src": "637:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "619:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "619:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 830, + "nodeType": "ExpressionStatement", + "src": "619:44:5" + } + ] + }, + "id": 832, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "588:18:5", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "580:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "579:28:5" + }, + "returnParameters": { + "id": 824, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:0:5" + }, + "scope": 1019, + "src": "568:103:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "795:978:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 841, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "810:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 842, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "820:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "810:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 847, + "nodeType": "IfStatement", + "src": "806:60:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 844, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "835:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "835:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 846, + "nodeType": "RevertStatement", + "src": "828:38:5" + } + }, + { + "assignments": [ + 849, + 851 + ], + "declarations": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "token0", + "nameLocation": "886:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "878:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "878:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "token1", + "nameLocation": "902:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "894:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "894:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 862, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "912:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 853, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "921:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "912:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 858, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "976:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 859, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "984:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 860, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "975:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "912:79:5", + "trueExpression": { + "components": [ + { + "id": 855, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "944:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "952:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "877:114:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1089:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:5", + "typeDescriptions": {} + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1089:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 872, + "nodeType": "IfStatement", + "src": "1085:59:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 869, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "1118:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1118:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "RevertStatement", + "src": "1111:33:5" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "id": 873, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1159:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 875, + "indexExpression": { + "id": 874, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 877, + "indexExpression": { + "id": 876, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1195:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1187:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1187:7:5", + "typeDescriptions": {} + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1187:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1159:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 886, + "nodeType": "IfStatement", + "src": "1155:89:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 883, + "name": "PoolFactory__PoolExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "1219:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "RevertStatement", + "src": "1212:32:5" + } + }, + { + "assignments": [ + 888 + ], + "declarations": [ + { + "constant": false, + "id": 888, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "1270:8:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1257:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1257:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 893, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 890, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1286:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + ], + "id": 889, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1281:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1281:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103", + "typeString": "type(contract Pool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1292:12:5", + "memberName": "creationCode", + "nodeType": "MemberAccess", + "src": "1281:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1257:47:5" + }, + { + "assignments": [ + 895 + ], + "declarations": [ + { + "constant": false, + "id": 895, + "mutability": "mutable", + "name": "salt", + "nameLocation": "1323:4:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1315:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1315:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 903, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 899, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1357:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 900, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 897, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1340:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1344:12:5", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1340:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1340:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 896, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1330:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1330:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1315:58:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1427:93:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1442:67:5", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1465:1:5", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1472:8:5" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1482:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1468:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "1468:17:5" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1493:8:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1487:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "1487:15:5" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "1504:4:5" + } + ], + "functionName": { + "name": "create2", + "nodeType": "YulIdentifier", + "src": "1457:7:5" + }, + "nodeType": "YulFunctionCall", + "src": "1457:52:5" + }, + "variableNames": [ + { + "name": "poolAddress", + "nodeType": "YulIdentifier", + "src": "1442:11:5" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1472:8:5", + "valueSize": 1 + }, + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1493:8:5", + "valueSize": 1 + }, + { + "declaration": 839, + "isOffset": false, + "isSlot": false, + "src": "1442:11:5", + "valueSize": 1 + }, + { + "declaration": 895, + "isOffset": false, + "isSlot": false, + "src": "1504:4:5", + "valueSize": 1 + } + ], + "id": 904, + "nodeType": "InlineAssembly", + "src": "1418:102:5" + }, + { + "expression": { + "arguments": [ + { + "id": 909, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1555:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 910, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1563:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 906, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1537:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 905, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1532:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1550:4:5", + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 1683, + "src": "1532:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 912, + "nodeType": "ExpressionStatement", + "src": "1532:38:5" + }, + { + "expression": { + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 913, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1583:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 917, + "indexExpression": { + "id": 915, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1600:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1583:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 918, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1610:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1583:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 920, + "nodeType": "ExpressionStatement", + "src": "1583:38:5" + }, + { + "expression": { + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 921, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1632:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 924, + "indexExpression": { + "id": 922, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1641:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1632:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 925, + "indexExpression": { + "id": 923, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1649:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1632:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 926, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1659:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1632:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "1632:38:5" + }, + { + "expression": { + "arguments": [ + { + "id": 932, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1695:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 929, + "name": "allPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 812, + "src": "1681:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1690:4:5", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "1681:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1681:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1681:26:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 936, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1737:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 937, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1745:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 938, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1753:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 935, + "name": "PoolCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "1725:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1725:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 940, + "nodeType": "EmitStatement", + "src": "1720:45:5" + } + ] + }, + "functionSelector": "e3433615", + "id": 942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "688:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "717:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "709:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "742:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "734:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "734:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "698:57:5" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "782:11:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "774:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "773:21:5" + }, + "scope": 1019, + "src": "679:1094:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "1895:52:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 951, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1913:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 953, + "indexExpression": { + "id": 952, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "1922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 955, + "indexExpression": { + "id": 954, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1931:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 950, + "id": 956, + "nodeType": "Return", + "src": "1906:33:5" + } + ] + }, + "functionSelector": "4a70f02e", + "id": 958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "1790:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "1822:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1814:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1814:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "1848:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1840:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1840:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1803:59:5" + }, + "returnParameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1886:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1885:9:5" + }, + "scope": 1019, + "src": "1781:166:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 970, + "nodeType": "Block", + "src": "2010:73:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 963, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2021:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2021:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "2021:15:5" + }, + { + "expression": { + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 966, + "name": "feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "2049:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 967, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "2063:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2049:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 969, + "nodeType": "ExpressionStatement", + "src": "2049:26:5" + } + ] + }, + "functionSelector": "efdcd974", + "id": 971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeReceiver", + "nameLocation": "1964:14:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "1987:12:5", + "nodeType": "VariableDeclaration", + "scope": 971, + "src": "1979:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1979:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1978:22:5" + }, + "returnParameters": { + "id": 962, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:0:5" + }, + "scope": 1019, + "src": "1955:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 985, + "nodeType": "Block", + "src": "2160:91:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 976, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2171:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2171:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "2171:15:5" + }, + { + "expression": { + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 979, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2199:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 981, + "indexExpression": { + "id": 980, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "2217:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2199:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2239:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2199:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "2199:44:5" + } + ] + }, + "functionSelector": "5ac40ab3", + "id": 986, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addToFeeReceiverSetter", + "nameLocation": "2100:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2131:18:5", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "2123:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:28:5" + }, + "returnParameters": { + "id": 975, + "nodeType": "ParameterList", + "parameters": [], + "src": "2160:0:5" + }, + "scope": 1019, + "src": "2091:160:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "2333:92:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 991, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2344:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 993, + "nodeType": "ExpressionStatement", + "src": "2344:15:5" + }, + { + "expression": { + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 994, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2372:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 996, + "indexExpression": { + "id": 995, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 988, + "src": "2390:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2372:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2412:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2372:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "ExpressionStatement", + "src": "2372:45:5" + } + ] + }, + "functionSelector": "48397023", + "id": 1001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeFromFeeReceiverSetter", + "nameLocation": "2268:27:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 988, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2304:18:5", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "2296:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2296:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2295:28:5" + }, + "returnParameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2333:0:5" + }, + "scope": 1019, + "src": "2259:166:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "2472:121:5", + "statements": [ + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "ifSetter", + "nameLocation": "2488:8:5", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "2483:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1004, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2483:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1010, + "initialValue": { + "baseExpression": { + "id": 1006, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2499:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1009, + "indexExpression": { + "expression": { + "id": 1007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2517:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2521:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2517:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2499:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2483:45:5" + }, + { + "condition": { + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2543:9:5", + "subExpression": { + "id": 1011, + "name": "ifSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2544:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1016, + "nodeType": "IfStatement", + "src": "2539:46:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1013, + "name": "PoolFactory__NotSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "2561:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2561:24:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1015, + "nodeType": "RevertStatement", + "src": "2554:31:5" + } + } + ] + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkIfSetter", + "nameLocation": "2442:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1002, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:5" + }, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2472:0:5" + }, + "scope": 1019, + "src": "2433:160:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1020, + "src": "262:2334:5", + "usedErrors": [ + 791, + 793, + 795, + 797 + ], + "usedEvents": [ + 820 + ] + } + ], + "src": "33:2563:5" + }, + "id": 5 + }, + "contracts/core/LiquidityProvider.sol": { + "ast": { + "absolutePath": "contracts/core/LiquidityProvider.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "IERC20": [ + 729 + ], + "IFactory": [ + 2124 + ], + "IPool": [ + 2166 + ], + "IWEDU": [ + 2186 + ], + "LiquidityProvider": [ + 1537 + ], + "LiquidityProvider__EDUTransferFailed": [ + 1032 + ], + "LiquidityProvider__InsufficientAmount": [ + 1028 + ], + "LiquidityProvider__InsufficientOutputAmount": [ + 1030 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 1538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1021, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1022, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 730, + "src": "120:56:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "file": "./interfaces/IFactory.sol", + "id": 1023, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2125, + "src": "178:35:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 1024, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2167, + "src": "215:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "file": "./interfaces/IWedu.sol", + "id": 1025, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2187, + "src": "249:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/libraries/Library.sol", + "file": "./libraries/Library.sol", + "id": 1026, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2296, + "src": "283:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "d0368649", + "id": 1028, + "name": "LiquidityProvider__InsufficientAmount", + "nameLocation": "326:37:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [], + "src": "363:2:6" + }, + "src": "320:46:6" + }, + { + "errorSelector": "dec0fbbe", + "id": 1030, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nameLocation": "374:43:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:6" + }, + "src": "368:52:6" + }, + { + "errorSelector": "0221f34c", + "id": 1032, + "name": "LiquidityProvider__EDUTransferFailed", + "nameLocation": "428:36:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1031, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:6" + }, + "src": "422:45:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LiquidityProvider", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1537, + "linearizedBaseContracts": [ + 1537 + ], + "name": "LiquidityProvider", + "nameLocation": "480:17:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1034, + "mutability": "immutable", + "name": "factoryAddress", + "nameLocation": "531:14:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "505:40:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1036, + "mutability": "immutable", + "name": "WEDU", + "nameLocation": "578:4:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "552:30:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1051, + "nodeType": "Block", + "src": "643:74:6", + "statements": [ + { + "expression": { + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1043, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "654:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1044, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1038, + "src": "671:15:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:32:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "654:32:6" + }, + { + "expression": { + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1047, + "name": "WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1036, + "src": "697:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1048, + "name": "_WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "704:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "697:12:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "697:12:6" + } + ] + }, + "id": 1052, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1038, + "mutability": "mutable", + "name": "_factoryAddress", + "nameLocation": "611:15:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "603:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "mutability": "mutable", + "name": "_WEDU", + "nameLocation": "636:5:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "628:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "602:40:6" + }, + "returnParameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:6" + }, + "scope": 1537, + "src": "591:126:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1184, + "nodeType": "Block", + "src": "995:1414:6", + "statements": [ + { + "assignments": [ + 1072 + ], + "declarations": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "pair", + "nameLocation": "1014:4:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1006:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "arguments": [ + { + "id": 1077, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1074, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1021:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1046:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1021:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1006:71:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1108:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1100:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1100:7:6", + "typeDescriptions": {} + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1100:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1092:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "1088:97:6", + "trueBody": { + "expression": { + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1087, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1125:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1092, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1168:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1093, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1177:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1089, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1141:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1088, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1132:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1157:10:6", + "memberName": "createPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2123, + "src": "1132:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:60:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1125:60:6" + } + }, + { + "assignments": [ + 1099, + 1101 + ], + "declarations": [ + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "1207:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1199:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1199:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1101, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "1225:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1217:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1107, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1103, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1102, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "1237:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1249:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "1237:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1198:69:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1108, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1284:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1111, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1301:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1313:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1301:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:30:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1182, + "nodeType": "Block", + "src": "1416:986:6", + "statements": [ + { + "assignments": [ + 1125 + ], + "declarations": [ + { + "constant": false, + "id": 1125, + "mutability": "mutable", + "name": "optimalAmountOfTokenB", + "nameLocation": "1439:21:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1431:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1431:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1131, + "initialValue": { + "arguments": [ + { + "id": 1127, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1487:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1128, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1527:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1129, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1126, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1463:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1463:114:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:146:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1132, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1596:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1133, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1621:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1596:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1180, + "nodeType": "Block", + "src": "1938:453:6", + "statements": [ + { + "assignments": [ + 1152 + ], + "declarations": [ + { + "constant": false, + "id": 1152, + "mutability": "mutable", + "name": "amountAOptimal", + "nameLocation": "1965:14:6", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "1957:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1154, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2010:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1155, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "2054:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1156, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "2085:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1153, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1982:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:130:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1957:155:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2138:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1161, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "2156:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2138:39:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1159, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2131:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2131:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "ExpressionStatement", + "src": "2131:47:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1165, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2201:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1166, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "2218:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2201:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1171, + "nodeType": "IfStatement", + "src": "2197:99:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1168, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "2257:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2257:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1170, + "nodeType": "RevertStatement", + "src": "2250:46:6" + } + }, + { + "expression": { + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1172, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "2316:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1173, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "2325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1174, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2315:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1175, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2337:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1176, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:39:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2315:60:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "2315:60:6" + } + ] + }, + "id": 1181, + "nodeType": "IfStatement", + "src": "1592:799:6", + "trueBody": { + "id": 1150, + "nodeType": "Block", + "src": "1644:288:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1135, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1667:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1136, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1691:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1141, + "nodeType": "IfStatement", + "src": "1663:106:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1138, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "1730:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1730:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1140, + "nodeType": "RevertStatement", + "src": "1723:46:6" + } + }, + { + "expression": { + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1142, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1789:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1143, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1144, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1788:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1145, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1832:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1146, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1147, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1809:107:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1788:128:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1149, + "nodeType": "ExpressionStatement", + "src": "1788:128:6" + } + ] + } + } + ] + }, + "id": 1183, + "nodeType": "IfStatement", + "src": "1280:1122:6", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "1316:94:6", + "statements": [ + { + "expression": { + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1115, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1332:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1116, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1117, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1331:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1118, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1119, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1376:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1120, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1352:46:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1331:67:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "1331:67:6" + } + ] + } + } + ] + }, + "id": 1185, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLiquidity", + "nameLocation": "734:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "766:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "758:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1053, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "758:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1056, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "792:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "784:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1058, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "818:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "810:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "858:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "850:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "850:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "898:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "890:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "926:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "918:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "918:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "747:195:6" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "969:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "961:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "986:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "978:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "960:34:6" + }, + "scope": 1537, + "src": "725:1684:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "2703:487:6", + "statements": [ + { + "expression": { + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1206, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "2715:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1207, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "2724:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1208, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2714:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1210, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2763:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1211, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2784:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1212, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "2805:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1213, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2841:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1214, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1195, + "src": "2877:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1215, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2901:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1209, + "name": "_addLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "2735:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:186:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2714:207:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1218, + "nodeType": "ExpressionStatement", + "src": "2714:207:6" + }, + { + "assignments": [ + 1220 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "pair", + "nameLocation": "2940:4:6", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "2932:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2932:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2994:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1222, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2956:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1221, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "2947:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2972:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "2947:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2932:69:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1233, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3040:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3044:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3040:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3052:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1236, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "3058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1230, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "3019:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3027:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3012:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1238, + "nodeType": "ExpressionStatement", + "src": "3012:54:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3105:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3105:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1245, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3117:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1246, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "3123:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1240, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "3084:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1239, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3077:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3092:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3077:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "3077:54:6" + }, + { + "expression": { + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1249, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "3142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1254, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3171:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3171:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1251, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3160:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1250, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3154:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3166:4:6", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2140, + "src": "3154:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3142:40:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1258, + "nodeType": "ExpressionStatement", + "src": "3142:40:6" + } + ] + }, + "functionSelector": "3351733f", + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "2426:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1187, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "2457:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2449:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2449:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1189, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "2482:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2474:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "2507:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2499:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "2547:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2539:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "2587:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2579:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "2615:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2607:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2438:193:6" + }, + "returnParameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2658:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2650:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2650:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2675:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2667:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2667:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2692:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2684:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2684:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2649:53:6" + }, + "scope": 1537, + "src": "2417:773:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1349, + "nodeType": "Block", + "src": "4116:531:6", + "statements": [ + { + "body": { + "id": 1347, + "nodeType": "Block", + "src": "4166:474:6", + "statements": [ + { + "assignments": [ + 1286, + 1288 + ], + "declarations": [ + { + "constant": false, + "id": 1286, + "mutability": "mutable", + "name": "input", + "nameLocation": "4190:5:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4182:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4182:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "output", + "nameLocation": "4205:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4197:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4197:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1298, + "initialValue": { + "components": [ + { + "baseExpression": { + "id": 1289, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4216:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1291, + "indexExpression": { + "id": 1290, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4221:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4216:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1292, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4225:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1296, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4230:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4230:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4215:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4181:56:6" + }, + { + "assignments": [ + 1300, + null + ], + "declarations": [ + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "token0", + "nameLocation": "4261:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4253:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1306, + "initialValue": { + "arguments": [ + { + "id": 1303, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1304, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "4303:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1301, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "4273:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4285:10:6", + "memberName": "sortTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 2236, + "src": "4273:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", + "typeString": "function (address,address) pure returns (address,address)" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4273:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4252:58:6" + }, + { + "assignments": [ + 1308 + ], + "declarations": [ + { + "constant": false, + "id": 1308, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "4333:9:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4325:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1314, + "initialValue": { + "baseExpression": { + "id": 1309, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4345:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1313, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4353:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4357:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4345:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4325:34:6" + }, + { + "assignments": [ + 1316, + 1318 + ], + "declarations": [ + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "4383:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4375:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "4403:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4395:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1335, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1319, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4417:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1320, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "4426:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4417:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4504:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4496:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:6", + "typeDescriptions": {} + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4496:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1332, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4508:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1333, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4495:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 1334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4417:101:6", + "trueExpression": { + "components": [ + { + "id": 1322, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4453:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4472:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4464:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4464:7:6", + "typeDescriptions": {} + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4464:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1327, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4452:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4374:144:6" + }, + { + "documentation": "TODO: In case of multiple hops ", + "expression": { + "arguments": [ + { + "id": 1340, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4601:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 1341, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1343, + "indexExpression": { + "id": 1342, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4620:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4612:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1344, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1270, + "src": "4624:3:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1337, + "name": "_pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1268, + "src": "4589:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1336, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "4583:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4596:4:6", + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 2165, + "src": "4583:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address) external" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1346, + "nodeType": "ExpressionStatement", + "src": "4583:45:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1276, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4140:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1277, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4144:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4149:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4158:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4144:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4140:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1348, + "initializationExpression": { + "assignments": [ + 1274 + ], + "declarations": [ + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "i", + "nameLocation": "4137:1:6", + "nodeType": "VariableDeclaration", + "scope": 1348, + "src": "4132:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1273, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4132:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1275, + "nodeType": "VariableDeclarationStatement", + "src": "4132:6:6" + }, + "loopExpression": { + "expression": { + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4161:3:6", + "subExpression": { + "id": 1282, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4161:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "4161:3:6" + }, + "nodeType": "ForStatement", + "src": "4127:513:6" + } + ] + }, + "id": 1350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "3981:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4014:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "3997:24:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1262, + "nodeType": "ArrayTypeName", + "src": "3997:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1266, + "mutability": "mutable", + "name": "path", + "nameLocation": "4049:4:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4032:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4032:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1265, + "nodeType": "ArrayTypeName", + "src": "4032:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1268, + "mutability": "mutable", + "name": "_pair", + "nameLocation": "4072:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4064:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4064:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "_to", + "nameLocation": "4096:3:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4088:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3986:120:6" + }, + "returnParameters": { + "id": 1272, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:6" + }, + "scope": 1537, + "src": "3972:675:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1420, + "nodeType": "Block", + "src": "4899:392:6", + "statements": [ + { + "assignments": [ + 1365 + ], + "declarations": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "pair", + "nameLocation": "4918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "4910:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1377, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1370, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1372, + "indexExpression": { + "hexValue": "30", + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4964:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1373, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4973:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1375, + "indexExpression": { + "hexValue": "31", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4978:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4973:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1367, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "4934:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1366, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "4925:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4950:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "4925:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4910:71:6" + }, + { + "expression": { + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1378, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "4994:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1380, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1381, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "5024:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1382, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5034:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 1379, + "name": "getAmountsOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "5004:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5004:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4994:45:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1385, + "nodeType": "ExpressionStatement", + "src": "4994:45:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1386, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5054:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1391, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1387, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5062:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5070:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5062:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5062:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5054:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1392, + "name": "amountOutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "5084:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1397, + "nodeType": "IfStatement", + "src": "5050:113:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1394, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "5118:43:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5118:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1396, + "nodeType": "RevertStatement", + "src": "5111:52:6" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5205:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5209:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5205:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5217:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1407, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5223:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1409, + "indexExpression": { + "hexValue": "30", + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5223:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1399, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5183:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1401, + "indexExpression": { + "hexValue": "30", + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5183:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1398, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "5176:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5192:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "5176:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "5176:58:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1413, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5251:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1414, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5260:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 1415, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5266:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5272:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5276:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5272:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "5245:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[] memory,address[] memory,address,address)" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "5245:38:6" + } + ] + }, + "functionSelector": "86818f26", + "id": 1421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "4664:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4704:8:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4699:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1351, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4699:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1354, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4728:12:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4723:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4723:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "path", + "nameLocation": "4770:4:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4751:23:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4751:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1356, + "nodeType": "ArrayTypeName", + "src": "4751:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4688:93:6" + }, + "returnParameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4875:7:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4861:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4861:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1361, + "nodeType": "ArrayTypeName", + "src": "4861:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4817:76:6" + }, + "scope": 1537, + "src": "4655:636:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1459, + "nodeType": "Block", + "src": "5429:265:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1433, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5448:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5448:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5461:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + }, + "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + } + ], + "id": 1432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5440:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5440:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "5440:65:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1440, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5538:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5549:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5538:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1443, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5565:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5554:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5538:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5581:42:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 1439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5516:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5516:118:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1449, + "nodeType": "ExpressionStatement", + "src": "5516:118:6" + }, + { + "expression": { + "id": 1457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1450, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1451, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1452, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5666:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5656:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5655:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1455, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5678:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5655:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5645:41:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1458, + "nodeType": "ExpressionStatement", + "src": "5645:41:6" + } + ] + }, + "id": 1460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "5308:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1423, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "5329:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5324:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5324:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1425, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "5352:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5347:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1424, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1427, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "5376:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5371:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1426, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5371:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5313:78:6" + }, + "returnParameters": { + "id": 1431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1430, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "5420:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5415:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:14:6" + }, + "scope": 1537, + "src": "5299:395:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1535, + "nodeType": "Block", + "src": "5923:453:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1474, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "5942:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5947:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5942:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "32", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5942:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "id": 1478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5960:32:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + }, + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + } + ], + "id": 1473, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:59:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "ExpressionStatement", + "src": "5934:59:6" + }, + { + "expression": { + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1481, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6004:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1485, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6030:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6025:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6014:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1483, + "nodeType": "ArrayTypeName", + "src": "6018:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6014:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "6004:33:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1489, + "nodeType": "ExpressionStatement", + "src": "6004:33:6" + }, + { + "expression": { + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1490, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1492, + "indexExpression": { + "hexValue": "30", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6048:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1493, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "6061:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6048:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "6048:21:6" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6119:250:6", + "statements": [ + { + "assignments": [ + 1509, + 1511 + ], + "declarations": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "6140:9:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6135:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6135:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1511, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "6156:10:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6151:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1510, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6151:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1513, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "6176:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1512, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "6170:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6182:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "6170:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6134:66:6" + }, + { + "expression": { + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1518, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6215:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1522, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6223:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6227:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6223:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6215:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 1525, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6275:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1527, + "indexExpression": { + "id": 1526, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6283:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6275:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1529, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1511, + "src": "6332:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1523, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "6232:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6244:12:6", + "memberName": "getAmountOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "6232:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6232:125:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6215:142:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6215:142:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6093:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1500, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6097:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6102:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6097:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6111:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6097:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6093:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1534, + "initializationExpression": { + "assignments": [ + 1497 + ], + "declarations": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "i", + "nameLocation": "6090:1:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6085:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6085:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1498, + "nodeType": "VariableDeclarationStatement", + "src": "6085:6:6" + }, + "loopExpression": { + "expression": { + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6114:3:6", + "subExpression": { + "id": 1505, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6114:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "6114:3:6" + }, + "nodeType": "ForStatement", + "src": "6080:289:6" + } + ] + }, + "functionSelector": "bb7b9c76", + "id": 1536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "5779:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "pair", + "nameLocation": "5811:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5803:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5803:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "5831:8:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5826:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1467, + "mutability": "mutable", + "name": "path", + "nameLocation": "5867:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5850:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5850:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1466, + "nodeType": "ArrayTypeName", + "src": "5850:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5792:86:6" + }, + "returnParameters": { + "id": 1472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1471, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "5914:7:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5900:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5900:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1470, + "nodeType": "ArrayTypeName", + "src": "5900:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5899:23:6" + }, + "scope": 1537, + "src": "5770:606:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1538, + "src": "471:5908:6", + "usedErrors": [ + 1028, + 1030, + 2190, + 2192 + ], + "usedEvents": [] + } + ], + "src": "33:6346:6" + }, + "id": 6 + }, + "contracts/core/Math.sol": { + "ast": { + "absolutePath": "contracts/core/Math.sol", + "exportedSymbols": { + "Math": [ + 1613 + ] + }, + "id": 1614, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1539, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613 + ], + "name": "Math", + "nameLocation": "123:4:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1557, + "nodeType": "Block", + "src": "195:36:7", + "statements": [ + { + "expression": { + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1548, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "206:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1549, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "210:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1550, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "214:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "210:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1553, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "222:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "210:13:7", + "trueExpression": { + "id": 1552, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "218:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "206:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1556, + "nodeType": "ExpressionStatement", + "src": "206:17:7" + } + ] + }, + "id": 1558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "144:3:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1541, + "mutability": "mutable", + "name": "x", + "nameLocation": "153:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "148:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "148:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1543, + "mutability": "mutable", + "name": "y", + "nameLocation": "161:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "156:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "156:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "147:16:7" + }, + "returnParameters": { + "id": 1547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "z", + "nameLocation": "192:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "187:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "187:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "186:8:7" + }, + "scope": 1613, + "src": "135:96:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "402:250:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1565, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "417:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "33", + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "421:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "417:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1601, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "605:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "610:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "605:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1609, + "nodeType": "IfStatement", + "src": "601:44:7", + "trueBody": { + "id": 1608, + "nodeType": "Block", + "src": "613:32:7", + "statements": [ + { + "expression": { + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1604, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "628:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "632:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "628:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "628:5:7" + } + ] + } + }, + "id": 1610, + "nodeType": "IfStatement", + "src": "413:232:7", + "trueBody": { + "id": 1600, + "nodeType": "Block", + "src": "424:171:7", + "statements": [ + { + "expression": { + "id": 1570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1568, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "439:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1569, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "443:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "439:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1571, + "nodeType": "ExpressionStatement", + "src": "439:5:7" + }, + { + "assignments": [ + 1573 + ], + "declarations": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "x", + "nameLocation": "464:1:7", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "459:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "459:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1579, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1574, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "468:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "468:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "468:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "459:18:7" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "506:78:7", + "statements": [ + { + "expression": { + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1583, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "525:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1584, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "529:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "525:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "525:5:7" + }, + { + "expression": { + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1587, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "549:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1588, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "554:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1589, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "558:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "562:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1593, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "553:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "553:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1597, + "nodeType": "ExpressionStatement", + "src": "549:19:7" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1580, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "499:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1581, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "503:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "499:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1599, + "nodeType": "WhileStatement", + "src": "492:92:7" + } + ] + } + } + ] + }, + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "358:4:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "y", + "nameLocation": "368:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "363:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "363:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "362:8:7" + }, + "returnParameters": { + "id": 1564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1563, + "mutability": "mutable", + "name": "z", + "nameLocation": "399:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "394:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "394:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "393:8:7" + }, + "scope": 1613, + "src": "349:303:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1614, + "src": "115:540:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:622:7" + }, + "id": 7 + }, + "contracts/core/Pool.sol": { + "ast": { + "absolutePath": "contracts/core/Pool.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ] + }, + "id": 2104, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1616, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 652, + "src": "60:55:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1617, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 730, + "src": "117:56:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Math.sol", + "file": "./Math.sol", + "id": 1618, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 1614, + "src": "175:20:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "0c18a1fc", + "id": 1620, + "name": "PoolFactory__NotOwner", + "nameLocation": "205:21:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:2:8" + }, + "src": "199:30:8" + }, + { + "errorSelector": "24217e51", + "id": 1622, + "name": "PoolFactory__InsufficientLiquidity", + "nameLocation": "237:34:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [], + "src": "271:2:8" + }, + "src": "231:43:8" + }, + { + "errorSelector": "5d125c46", + "id": 1624, + "name": "PoolFactory__InsufficientFunds", + "nameLocation": "282:30:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "src": "276:39:8" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1625, + "name": "ERC20", + "nameLocations": [ + "336:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "336:5:8" + }, + "id": 1626, + "nodeType": "InheritanceSpecifier", + "src": "336:5:8" + } + ], + "canonicalName": "Pool", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2103, + "linearizedBaseContracts": [ + 2103, + 651, + 41, + 755, + 729, + 785 + ], + "name": "Pool", + "nameLocation": "328:4:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1629, + "libraryName": { + "id": 1627, + "name": "Math", + "nameLocations": [ + "355:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1613, + "src": "355:4:8" + }, + "nodeType": "UsingForDirective", + "src": "349:23:8", + "typeName": { + "id": 1628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1631, + "mutability": "immutable", + "name": "factory", + "nameLocation": "406:7:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "380:33:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "380:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "436:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "420:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "465:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "449:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 1640, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "504:17:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "480:51:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "480:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "524:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "33", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "556:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "540:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "540:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1644, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "587:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "571:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "totalLpShares", + "nameLocation": "620:13:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "604:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1658, + "nodeType": "Block", + "src": "687:39:8", + "statements": [ + { + "expression": { + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1653, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "698:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1654, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "708:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "712:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "708:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "698:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1657, + "nodeType": "ExpressionStatement", + "src": "698:20:8" + } + ] + }, + "id": 1659, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4c6971756964697479546f6b656e73", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "662:17:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0", + "typeString": "literal_string \"LiquidityTokens\"" + }, + "value": "LiquidityTokens" + }, + { + "hexValue": "4c50", + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3", + "typeString": "literal_string \"LP\"" + }, + "value": "LP" + } + ], + "id": 1651, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1648, + "name": "ERC20", + "nameLocations": [ + "656:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "656:5:8" + }, + "nodeType": "ModifierInvocation", + "src": "656:30:8" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "653:2:8" + }, + "returnParameters": { + "id": 1652, + "nodeType": "ParameterList", + "parameters": [], + "src": "687:0:8" + }, + "scope": 2103, + "src": "642:84:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1682, + "nodeType": "Block", + "src": "791:132:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1666, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "806:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1667, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "817:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "821:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "817:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "806:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "802:57:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1670, + "name": "PoolFactory__NotOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "836:21:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "836:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1672, + "nodeType": "RevertStatement", + "src": "829:30:8" + } + }, + { + "expression": { + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1674, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "872:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1675, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "881:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "872:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1677, + "nodeType": "ExpressionStatement", + "src": "872:16:8" + }, + { + "expression": { + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1678, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1679, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "908:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "899:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1681, + "nodeType": "ExpressionStatement", + "src": "899:16:8" + } + ] + }, + "functionSelector": "f09a4016", + "id": 1683, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "743:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "756:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "748:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "773:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "765:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "747:34:8" + }, + "returnParameters": { + "id": 1665, + "nodeType": "ParameterList", + "parameters": [], + "src": "791:0:8" + }, + "scope": 2103, + "src": "734:189:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "994:70:8", + "statements": [ + { + "expression": { + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1690, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "1005:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1691, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1016:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1005:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "1005:20:8" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1694, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "1036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "1047:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1036:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1036:20:8" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "940:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "956:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "948:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "948:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "967:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "967:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "947:38:8" + }, + "returnParameters": { + "id": 1689, + "nodeType": "ParameterList", + "parameters": [], + "src": "994:0:8" + }, + "scope": 2103, + "src": "931:133:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "1136:1104:8", + "statements": [ + { + "assignments": [ + 1707, + 1709 + ], + "declarations": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_reserveA", + "nameLocation": "1156:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1148:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1148:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1709, + "mutability": "mutable", + "name": "_reserveB", + "nameLocation": "1175:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1167:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1712, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1710, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "1188:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1188:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1147:59:8" + }, + { + "assignments": [ + 1714 + ], + "declarations": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "1225:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1217:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1721, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1270:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1262:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1262:7:8", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1262:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1716, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "1244:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1715, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1237:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1252:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1237:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1217:59:8" + }, + { + "assignments": [ + 1726 + ], + "declarations": [ + { + "constant": false, + "id": 1726, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "1295:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1287:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1736, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1733, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1340:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:8", + "typeDescriptions": {} + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1332:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1728, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "1314:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1727, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1307:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1322:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1307:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1287:59:8" + }, + { + "assignments": [ + 1738 + ], + "declarations": [ + { + "constant": false, + "id": 1738, + "mutability": "mutable", + "name": "depositOfTokenA", + "nameLocation": "1365:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1357:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1742, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1739, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "1383:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1740, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1395:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1383:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1357:47:8" + }, + { + "assignments": [ + 1744 + ], + "declarations": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "depositOfTokenB", + "nameLocation": "1423:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1415:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1415:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1748, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1745, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "1441:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1746, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1453:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1441:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1415:47:8" + }, + { + "assignments": [ + 1750 + ], + "declarations": [ + { + "constant": false, + "id": 1750, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1483:12:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1475:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1475:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1753, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1751, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "1498:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1498:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:36:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1754, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1526:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1542:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1526:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1796, + "nodeType": "Block", + "src": "1828:188:8", + "statements": [ + { + "expression": { + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1778, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1843:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1781, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1883:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1782, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1883:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1882:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1785, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1917:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1882:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1787, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1946:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1788, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1964:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1946:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1790, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1945:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1791, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1980:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1945:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1779, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1855:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1860:3:8", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 1558, + "src": "1855:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:149:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1843:161:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1795, + "nodeType": "ExpressionStatement", + "src": "1843:161:8" + } + ] + }, + "id": 1797, + "nodeType": "IfStatement", + "src": "1522:494:8", + "trueBody": { + "id": 1777, + "nodeType": "Block", + "src": "1545:277:8", + "statements": [ + { + "expression": { + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1757, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1560:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1760, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1599:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1761, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1617:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1599:33:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1758, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1589:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1594:4:8", + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1612, + "src": "1589:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "id": 1764, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1654:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1653:19:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1589:83:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1560:112:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "1560:112:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "31", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1693:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1693:7:8", + "typeDescriptions": {} + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1693:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1774, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1705:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1769, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "1687:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1687:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1776, + "nodeType": "ExpressionStatement", + "src": "1687:36:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1798, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2030:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2043:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2030:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1804, + "nodeType": "IfStatement", + "src": "2026:63:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1801, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "2053:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2053:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1803, + "nodeType": "RevertStatement", + "src": "2046:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "id": 1806, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "2106:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1807, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2111:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1805, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "2100:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2100:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1809, + "nodeType": "ExpressionStatement", + "src": "2100:21:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1811, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "2140:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1812, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "2151:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "2132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1814, + "nodeType": "ExpressionStatement", + "src": "2132:29:8" + } + ] + }, + "functionSelector": "6a627842", + "id": 1816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "1081:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1094:3:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1086:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1086:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1085:13:8" + }, + "returnParameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1125:9:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1117:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1116:19:8" + }, + "scope": 2103, + "src": "1072:1168:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1957, + "nodeType": "Block", + "src": "2368:1169:8", + "statements": [ + { + "assignments": [ + 1826, + 1828 + ], + "declarations": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "2388:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2380:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2380:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1828, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "2407:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2399:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1831, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1829, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "2420:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2379:59:8" + }, + { + "assignments": [ + 1833 + ], + "declarations": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "2472:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2464:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2464:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "id": 1834, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "2482:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2464:24:8" + }, + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "2522:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2514:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1839, + "initialValue": { + "id": 1838, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "2532:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2514:24:8" + }, + { + "assignments": [ + 1841 + ], + "declarations": [ + { + "constant": false, + "id": 1841, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "2569:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2564:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1851, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2614:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2606:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2606:7:8", + "typeDescriptions": {} + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1843, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "2587:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1842, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2580:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2596:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2580:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:56:8" + }, + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "2636:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2631:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2631:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1863, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1860, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2673:7:8", + "typeDescriptions": {} + } + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2673:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1855, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "2654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1854, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2647:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2663:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2647:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2631:56:8" + }, + { + "assignments": [ + 1865 + ], + "declarations": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2703:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2698:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2698:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1869, + "initialValue": { + "arguments": [ + { + "id": 1867, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "2725:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1866, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2715:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2715:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:30:8" + }, + { + "assignments": [ + 1871 + ], + "declarations": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "2749:12:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2741:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2741:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1874, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1872, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "2764:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2764:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2741:36:8" + }, + { + "expression": { + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1875, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "2866:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1876, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2877:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1877, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "2889:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2877:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2876:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1880, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "2901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2876:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1883, + "nodeType": "ExpressionStatement", + "src": "2866:47:8" + }, + { + "expression": { + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1884, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "2972:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1885, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2983:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1886, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2995:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2983:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1888, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2982:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1889, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3007:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2982:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2972:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1892, + "nodeType": "ExpressionStatement", + "src": "2972:47:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1893, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3082:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3093:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3082:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1896, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3098:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3109:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3098:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3082:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1903, + "nodeType": "IfStatement", + "src": "3078:90:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1900, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3132:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3132:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1902, + "nodeType": "RevertStatement", + "src": "3125:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1907, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3193:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3185:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3185:7:8", + "typeDescriptions": {} + } + }, + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3185:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1909, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3200:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1904, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3179:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3179:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "3179:31:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3246:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1917, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3250:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1913, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1912, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3221:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3237:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3221:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "3221:37:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1924, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3294:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1925, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3298:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1921, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3276:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1920, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3269:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3285:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3269:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "3269:37:8" + }, + { + "expression": { + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1928, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3317:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1935, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3362:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3354:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3354:7:8", + "typeDescriptions": {} + } + }, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3354:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1930, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1929, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3328:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3344:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3328:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3317:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "3317:51:8" + }, + { + "expression": { + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1940, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3379:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1947, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3424:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3416:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3416:7:8", + "typeDescriptions": {} + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1942, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3397:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1941, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3390:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3390:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3379:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "3379:51:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1953, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3451:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1954, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3461:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1952, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "3443:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3443:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1956, + "nodeType": "ExpressionStatement", + "src": "3443:27:8" + } + ] + }, + "functionSelector": "74a0f94b", + "id": 1958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "2270:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "to", + "nameLocation": "2306:2:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2298:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2298:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2287:28:8" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2342:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2334:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2359:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2351:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2351:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:34:8" + }, + "scope": 2103, + "src": "2261:1276:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2064, + "nodeType": "Block", + "src": "3680:778:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1967, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3695:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3695:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1970, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3714:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3714:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3695:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1977, + "nodeType": "IfStatement", + "src": "3691:92:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1974, + "name": "PoolFactory__InsufficientFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1624, + "src": "3751:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3751:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "RevertStatement", + "src": "3744:39:8" + } + }, + { + "assignments": [ + 1979, + 1981 + ], + "declarations": [ + { + "constant": false, + "id": 1979, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "3803:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3795:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "3822:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3814:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3814:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1982, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "3835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3835:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3794:59:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1985, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3868:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1986, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1979, + "src": "3881:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1988, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3894:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1989, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "3907:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3894:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3868:48:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1995, + "nodeType": "IfStatement", + "src": "3864:110:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1992, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3938:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3938:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1994, + "nodeType": "RevertStatement", + "src": "3931:43:8" + } + }, + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "3993:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1998, + "nodeType": "VariableDeclarationStatement", + "src": "3985:16:8" + }, + { + "assignments": [ + 2000 + ], + "declarations": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "4020:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "4012:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4012:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2001, + "nodeType": "VariableDeclarationStatement", + "src": "4012:16:8" + }, + { + "id": 2058, + "nodeType": "Block", + "src": "4039:372:8", + "statements": [ + { + "assignments": [ + 2003 + ], + "declarations": [ + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "4062:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4054:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2005, + "initialValue": { + "id": 2004, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4072:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4054:24:8" + }, + { + "assignments": [ + 2007 + ], + "declarations": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "4101:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4093:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4093:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2009, + "initialValue": { + "id": 2008, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4111:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:24:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2010, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4136:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4149:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4136:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2021, + "nodeType": "IfStatement", + "src": "4132:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2017, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4177:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2018, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4181:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2014, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4159:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2013, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4152:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4168:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4152:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2020, + "nodeType": "ExpressionStatement", + "src": "4152:40:8" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2022, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4211:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4224:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4211:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2033, + "nodeType": "IfStatement", + "src": "4207:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2029, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4252:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2030, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4256:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2026, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4234:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2025, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4227:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4243:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4227:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2032, + "nodeType": "ExpressionStatement", + "src": "4227:40:8" + } + }, + { + "expression": { + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2034, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4282:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2041, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4327:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4319:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4319:7:8", + "typeDescriptions": {} + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2036, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4300:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2035, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4293:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4309:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4293:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4282:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2045, + "nodeType": "ExpressionStatement", + "src": "4282:51:8" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2046, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4348:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2053, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4393:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4385:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4385:7:8", + "typeDescriptions": {} + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2048, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4366:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2047, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4359:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4375:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4359:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4348:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "4348:51:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "id": 2060, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4431:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2061, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4441:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2059, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4423:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4423:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2063, + "nodeType": "ExpressionStatement", + "src": "4423:27:8" + } + ] + }, + "functionSelector": "6d9a640a", + "id": 2065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "3554:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1960, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "3577:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3569:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3569:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1962, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "3606:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3598:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3598:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "to", + "nameLocation": "3635:2:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3627:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3627:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3558:112:8" + }, + "returnParameters": { + "id": 1966, + "nodeType": "ParameterList", + "parameters": [], + "src": "3680:0:8" + }, + "scope": 2103, + "src": "3545:913:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2076, + "nodeType": "Block", + "src": "4533:46:8", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2072, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "4552:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2073, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "4562:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4551:20:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2071, + "id": 2075, + "nodeType": "Return", + "src": "4544:27:8" + } + ] + }, + "functionSelector": "b9cf5005", + "id": 2077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "4475:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [], + "src": "4491:2:8" + }, + "returnParameters": { + "id": 2071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2068, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4515:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4515:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4524:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4514:18:8" + }, + "scope": 2103, + "src": "4466:113:8", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2101, + "nodeType": "Block", + "src": "4653:145:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2087, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4719:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4711:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4711:7:8", + "typeDescriptions": {} + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4711:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2082, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4693:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2081, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4686:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4701:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4686:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4773:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4765:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4765:7:8", + "typeDescriptions": {} + } + }, + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4765:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2091, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4747:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4740:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4755:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4740:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2080, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4664:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4664:126:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2100, + "nodeType": "ExpressionStatement", + "src": "4664:126:8" + } + ] + }, + "functionSelector": "fff6cae9", + "id": 2102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "4637:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [], + "src": "4641:2:8" + }, + "returnParameters": { + "id": 2079, + "nodeType": "ParameterList", + "parameters": [], + "src": "4653:0:8" + }, + "scope": 2103, + "src": "4628:170:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2104, + "src": "319:4482:8", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40, + 1620, + 1622, + 1624 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:4768:8" + }, + "id": 8 + }, + "contracts/core/interfaces/IFactory.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "exportedSymbols": { + "IFactory": [ + 2124 + ] + }, + "id": 2125, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2105, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IFactory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2124, + "linearizedBaseContracts": [ + 2124 + ], + "name": "IFactory", + "nameLocation": "70:8:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4a70f02e", + "id": 2114, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "95:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "127:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "119:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "144:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "108:57:9" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "184:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "184:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "183:9:9" + }, + "scope": 2124, + "src": "86:107:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e3433615", + "id": 2123, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "210:10:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "239:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "231:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "264:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "256:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "220:57:9" + }, + "returnParameters": { + "id": 2122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2121, + "mutability": "mutable", + "name": "poolPair", + "nameLocation": "304:8:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "296:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "295:18:9" + }, + "scope": 2124, + "src": "201:113:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2125, + "src": "60:257:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:284:9" + }, + "id": 9 + }, + "contracts/core/interfaces/IPool.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "exportedSymbols": { + "IPool": [ + 2166 + ] + }, + "id": 2167, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2126, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2166, + "linearizedBaseContracts": [ + 2166 + ], + "name": "IPool", + "nameLocation": "70:5:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "f09a4016", + "id": 2133, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "189:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2128, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "202:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "194:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "194:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "219:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "211:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "193:34:10" + }, + "returnParameters": { + "id": 2132, + "nodeType": "ParameterList", + "parameters": [], + "src": "236:0:10" + }, + "scope": 2166, + "src": "180:57:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 2140, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "254:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2135, + "mutability": "mutable", + "name": "_to", + "nameLocation": "267:3:10", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "259:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "259:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "258:13:10" + }, + "returnParameters": { + "id": 2139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "290:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "290:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "289:9:10" + }, + "scope": 2166, + "src": "245:54:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "74a0f94b", + "id": 2149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "316:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "to", + "nameLocation": "352:2:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "344:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "333:28:10" + }, + "returnParameters": { + "id": 2148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "388:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "380:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2147, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "405:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "397:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "397:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:34:10" + }, + "scope": 2166, + "src": "307:107:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b9cf5005", + "id": 2156, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "431:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:10" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2152, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "473:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "482:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:18:10" + }, + "scope": 2166, + "src": "422:69:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6d9a640a", + "id": 2165, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "508:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "531:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "523:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2160, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "560:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "552:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "552:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2162, + "mutability": "mutable", + "name": "to", + "nameLocation": "589:2:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "581:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "581:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "512:112:10" + }, + "returnParameters": { + "id": 2164, + "nodeType": "ParameterList", + "parameters": [], + "src": "633:0:10" + }, + "scope": 2166, + "src": "499:135:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2167, + "src": "60:577:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:604:10" + }, + "id": 10 + }, + "contracts/core/interfaces/IWedu.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "exportedSymbols": { + "IWEDU": [ + 2186 + ] + }, + "id": 2187, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2168, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IWEDU", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2186, + "linearizedBaseContracts": [ + 2186 + ], + "name": "IWEDU", + "nameLocation": "70:5:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 2171, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "92:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [], + "src": "99:2:11" + }, + "returnParameters": { + "id": 2170, + "nodeType": "ParameterList", + "parameters": [], + "src": "118:0:11" + }, + "scope": 2186, + "src": "83:36:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 2180, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "136:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2173, + "mutability": "mutable", + "name": "to", + "nameLocation": "153:2:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "145:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2175, + "mutability": "mutable", + "name": "value", + "nameLocation": "162:5:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "157:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2174, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "157:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "144:24:11" + }, + "returnParameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "187:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2177, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "187:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "186:6:11" + }, + "scope": 2186, + "src": "127:66:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e1a7d4d", + "id": 2185, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "210:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2185, + "src": "219:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "219:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:6:11" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [], + "src": "233:0:11" + }, + "scope": 2186, + "src": "201:33:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2187, + "src": "60:177:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:204:11" + }, + "id": 11 + }, + "contracts/core/libraries/Library.sol": { + "ast": { + "absolutePath": "contracts/core/libraries/Library.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 2296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2188, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:12" + }, + { + "errorSelector": "4bea99d9", + "id": 2190, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "66:29:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "95:2:12" + }, + "src": "60:38:12" + }, + { + "errorSelector": "74b959e9", + "id": 2192, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "106:24:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:12" + }, + "src": "100:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DefiLibrary", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2295, + "linearizedBaseContracts": [ + 2295 + ], + "name": "DefiLibrary", + "nameLocation": "145:11:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2235, + "nodeType": "Block", + "src": "397:341:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2203, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "412:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2204, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "422:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2209, + "nodeType": "IfStatement", + "src": "408:60:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2206, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "437:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "437:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2208, + "nodeType": "RevertStatement", + "src": "430:38:12" + } + }, + { + "expression": { + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 2210, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "480:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2211, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2201, + "src": "488:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2212, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "479:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2213, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "498:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2214, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "507:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "498:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 2219, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "562:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2220, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "570:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "561:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "498:79:12", + "trueExpression": { + "components": [ + { + "id": 2216, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "530:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2217, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "538:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2218, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "529:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "src": "479:98:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "479:98:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2225, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "675:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "685:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:12", + "typeDescriptions": {} + } + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "685:10:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "675:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2234, + "nodeType": "IfStatement", + "src": "671:59:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2192, + "src": "704:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "697:33:12" + } + } + ] + }, + "id": 2236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sortTokens", + "nameLocation": "274:10:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "303:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "295:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "328:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "320:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "284:57:12" + }, + "returnParameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "token0", + "nameLocation": "373:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "365:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "token1", + "nameLocation": "389:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "381:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2200, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "364:32:12" + }, + "scope": 2295, + "src": "265:473:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2293, + "nodeType": "Block", + "src": "1077:437:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2248, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1096:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1096:12:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:45:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 2247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1088:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1088:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2253, + "nodeType": "ExpressionStatement", + "src": "1088:68:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2255, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1189:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1189:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2258, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1206:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1189:31:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:42:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 2254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1167:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1167:121:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2264, + "nodeType": "ExpressionStatement", + "src": "1167:121:12" + }, + { + "assignments": [ + 2266 + ], + "declarations": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "amountInWithFee", + "nameLocation": "1304:15:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1299:20:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1299:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1322:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "393937", + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_997_by_1", + "typeString": "int_const 997" + }, + "value": "997" + }, + "src": "1322:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1299:37:12" + }, + { + "assignments": [ + 2272 + ], + "declarations": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "numerator", + "nameLocation": "1352:9:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1347:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1347:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2276, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2273, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1364:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2274, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1382:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1364:28:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1347:45:12" + }, + { + "assignments": [ + 2278 + ], + "declarations": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1408:11:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1403:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2286, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2279, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1423:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31303030", + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1435:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "1423:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1422:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "id": 2283, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1444:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2284, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1443:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1422:38:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1403:57:12" + }, + { + "expression": { + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2287, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "1471:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2288, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1483:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2289, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2278, + "src": "1495:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:23:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1471:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2292, + "nodeType": "ExpressionStatement", + "src": "1471:35:12" + } + ] + }, + "id": 2294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "943:12:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "971:8:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "966:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "966:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "995:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "990:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "990:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "1020:10:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1015:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1015:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "955:82:12" + }, + "returnParameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "1066:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1061:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:16:12" + }, + "scope": 2295, + "src": "934:580:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2296, + "src": "137:1380:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:1484:12" + }, + "id": 12 + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol", + "exportedSymbols": { + "AppleToken": [ + 2322 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2323, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2298, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2323, + "sourceUnit": 652, + "src": "61:55:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2299, + "name": "ERC20", + "nameLocations": [ + "143:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "143:5:13" + }, + "id": 2300, + "nodeType": "InheritanceSpecifier", + "src": "143:5:13" + } + ], + "canonicalName": "AppleToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2322, + "linearizedBaseContracts": [ + 2322, + 651, + 41, + 755, + 729, + 785 + ], + "name": "AppleToken", + "nameLocation": "129:10:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2307, + "nodeType": "Block", + "src": "192:2:13", + "statements": [] + }, + "id": 2308, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4170706c65", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1", + "typeString": "literal_string \"Apple\"" + }, + "value": "Apple" + }, + { + "hexValue": "415054", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:5:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1", + "typeString": "literal_string \"APT\"" + }, + "value": "APT" + } + ], + "id": 2305, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2302, + "name": "ERC20", + "nameLocations": [ + "170:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "170:5:13" + }, + "nodeType": "ModifierInvocation", + "src": "170:21:13" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "167:2:13" + }, + "returnParameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:0:13" + }, + "scope": 2322, + "src": "156:38:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2320, + "nodeType": "Block", + "src": "252:37:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2316, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "269:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2317, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "274:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2315, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "263:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "263:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2319, + "nodeType": "ExpressionStatement", + "src": "263:18:13" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "211:4:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "_to", + "nameLocation": "224:3:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "216:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "216:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2312, + "mutability": "mutable", + "name": "amount", + "nameLocation": "237:6:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "229:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "229:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "215:29:13" + }, + "returnParameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [], + "src": "252:0:13" + }, + "scope": 2322, + "src": "202:87:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2323, + "src": "120:205:13", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:292:13" + }, + "id": 13 + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol", + "exportedSymbols": { + "CherryToken": [ + 2349 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2350, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2324, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2325, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2350, + "sourceUnit": 652, + "src": "61:55:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2326, + "name": "ERC20", + "nameLocations": [ + "144:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "144:5:14" + }, + "id": 2327, + "nodeType": "InheritanceSpecifier", + "src": "144:5:14" + } + ], + "canonicalName": "CherryToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2349, + "linearizedBaseContracts": [ + 2349, + 651, + 41, + 755, + 729, + 785 + ], + "name": "CherryToken", + "nameLocation": "129:11:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2334, + "nodeType": "Block", + "src": "194:2:14", + "statements": [] + }, + "id": 2335, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436865727279", + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "177:8:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f", + "typeString": "literal_string \"Cherry\"" + }, + "value": "Cherry" + }, + { + "hexValue": "434854", + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "187:5:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18", + "typeString": "literal_string \"CHT\"" + }, + "value": "CHT" + } + ], + "id": 2332, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2329, + "name": "ERC20", + "nameLocations": [ + "171:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "171:5:14" + }, + "nodeType": "ModifierInvocation", + "src": "171:22:14" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2328, + "nodeType": "ParameterList", + "parameters": [], + "src": "168:2:14" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:14" + }, + "scope": 2349, + "src": "157:39:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2347, + "nodeType": "Block", + "src": "254:37:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2343, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "271:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2344, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "276:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2342, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "265:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2346, + "nodeType": "ExpressionStatement", + "src": "265:18:14" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "213:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2337, + "mutability": "mutable", + "name": "_to", + "nameLocation": "226:3:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "218:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2339, + "mutability": "mutable", + "name": "amount", + "nameLocation": "239:6:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "231:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "231:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:29:14" + }, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:14" + }, + "scope": 2349, + "src": "204:87:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2350, + "src": "120:207:14", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:294:14" + }, + "id": 14 + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "WrappedEduToken": [ + 2376 + ] + }, + "id": 2377, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2351, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:15" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2352, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2377, + "sourceUnit": 652, + "src": "61:55:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2353, + "name": "ERC20", + "nameLocations": [ + "148:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "148:5:15" + }, + "id": 2354, + "nodeType": "InheritanceSpecifier", + "src": "148:5:15" + } + ], + "canonicalName": "WrappedEduToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2376, + "linearizedBaseContracts": [ + 2376, + 651, + 41, + 755, + 729, + 785 + ], + "name": "WrappedEduToken", + "nameLocation": "129:15:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2361, + "nodeType": "Block", + "src": "203:2:15", + "statements": [] + }, + "id": 2362, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "57726170706564456475", + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "181:12:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479", + "typeString": "literal_string \"WrappedEdu\"" + }, + "value": "WrappedEdu" + }, + { + "hexValue": "57454455", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "195:6:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03", + "typeString": "literal_string \"WEDU\"" + }, + "value": "WEDU" + } + ], + "id": 2359, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2356, + "name": "ERC20", + "nameLocations": [ + "175:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "175:5:15" + }, + "nodeType": "ModifierInvocation", + "src": "175:27:15" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:15" + }, + "returnParameters": { + "id": 2360, + "nodeType": "ParameterList", + "parameters": [], + "src": "203:0:15" + }, + "scope": 2376, + "src": "161:44:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2374, + "nodeType": "Block", + "src": "372:37:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2370, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "389:3:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2371, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2366, + "src": "394:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "383:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "383:18:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2373, + "nodeType": "ExpressionStatement", + "src": "383:18:15" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2375, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "331:4:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "_to", + "nameLocation": "344:3:15", + "nodeType": "VariableDeclaration", + "scope": 2375, + "src": "336:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "336:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2366, + "mutability": "mutable", + "name": "amount", + "nameLocation": "357:6:15", + "nodeType": "VariableDeclaration", + "scope": 2375, + "src": "349:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "335:29:15" + }, + "returnParameters": { + "id": 2368, + "nodeType": "ParameterList", + "parameters": [], + "src": "372:0:15" + }, + "scope": 2376, + "src": "322:87:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2377, + "src": "120:325:15", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:412:15" + }, + "id": 15 + } + }, + "contracts": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/core/Factory.sol": { + "PoolFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotSetter", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__PoolExists", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "addToFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "removeFromFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiver", + "type": "address" + } + ], + "name": "setFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_832": { + "entryPoint": null, + "id": 832, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 221, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 242, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 180, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 143, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 198, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1199:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "922:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "968:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "970:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "970:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "970:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "943:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "952:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "939:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "939:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "964:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "935:32:16" + }, + "nodeType": "YulIf", + "src": "932:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1061:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1076:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1090:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1080:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1105:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1151:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1162:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1147:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1147:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1171:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1115:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1115:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1105:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "892:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "903:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "915:6:16", + "type": "" + } + ], + "src": "845:351:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@addToFeeReceiverSetter_986": { + "entryPoint": 571, + "id": 986, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@checkIfSetter_1018": { + "entryPoint": 2042, + "id": 1018, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createPool_942": { + "entryPoint": 671, + "id": 942, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getTokenPairs_958": { + "entryPoint": 404, + "id": 958, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@removeFromFeeReceiverSetter_1001": { + "entryPoint": 303, + "id": 1001, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setFeeReceiver_971": { + "entryPoint": 1965, + "id": 971, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 2279, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2302, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 2352, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2423, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": { + "entryPoint": 2522, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2549, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 2597, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": { + "entryPoint": 2642, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2233, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2201, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_address": { + "entryPoint": 2502, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint160": { + "entryPoint": 2482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2196, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_96": { + "entryPoint": 2469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 2253, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3663:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "907:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "953:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "955:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "955:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "955:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "928:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "937:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "924:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "920:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "920:32:16" + }, + "nodeType": "YulIf", + "src": "917:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1046:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1061:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1075:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1065:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1090:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1125:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1121:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1121:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1145:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1100:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1100:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1090:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "877:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "888:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "900:6:16", + "type": "" + } + ], + "src": "841:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1259:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1305:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1307:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1307:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1307:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1280:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1289:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1276:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1276:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1301:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:32:16" + }, + "nodeType": "YulIf", + "src": "1269:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1398:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1413:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1417:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1442:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1477:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1488:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1473:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1473:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1497:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1452:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1452:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1442:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1525:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1540:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1544:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1570:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1605:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1616:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1601:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1601:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1625:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1580:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1580:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1570:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1221:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1232:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1244:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1252:6:16", + "type": "" + } + ], + "src": "1176:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1738:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1761:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1743:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1743:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1731:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1731:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1731:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1709:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1716:3:16", + "type": "" + } + ], + "src": "1656:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1878:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1888:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1900:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1911:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1896:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1888:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1968:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1981:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1992:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1977:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1977:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1924:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "1924:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1924:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1850:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1862:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1873:4:16", + "type": "" + } + ], + "src": "1780:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2050:52:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2060:35:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2085:2:16", + "type": "", + "value": "96" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2089:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2081:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2081:14:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "2060:8:16" + } + ] + } + ] + }, + "name": "shift_left_96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2031:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "2041:8:16", + "type": "" + } + ], + "src": "2008:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2155:47:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2165:31:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2190:5:16" + } + ], + "functionName": { + "name": "shift_left_96", + "nodeType": "YulIdentifier", + "src": "2176:13:16" + }, + "nodeType": "YulFunctionCall", + "src": "2176:20:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2165:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2147:7:16", + "type": "" + } + ], + "src": "2108:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2255:53:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2265:37:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2296:5:16" + } + ], + "functionName": { + "name": "leftAlign_t_uint160", + "nodeType": "YulIdentifier", + "src": "2276:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2276:26:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2265:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2237:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2247:7:16", + "type": "" + } + ], + "src": "2208:100:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2397:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2414:3:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2457:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "2439:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2439:24:16" + } + ], + "functionName": { + "name": "leftAlign_t_address", + "nodeType": "YulIdentifier", + "src": "2419:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2419:45:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2407:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2407:58:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2385:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2392:3:16", + "type": "" + } + ], + "src": "2314:157:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2621:253:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2694:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2703:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2632:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2632:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2632:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2716:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2727:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2732:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2723:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2723:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2716:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2807:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2816:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2745:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2745:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2745:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2829:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2840:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2845:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2829:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2858:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2865:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2858:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2592:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2598:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2617:3:16", + "type": "" + } + ], + "src": "2477:397:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3006:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3016:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3028:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3039:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3024:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3016:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3096:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3109:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3105:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3105:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3052:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3052:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3052:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3190:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3201:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3186:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3186:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3133:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2970:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2982:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2990:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3001:4:16", + "type": "" + } + ], + "src": "2880:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3372:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3382:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3394:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3405:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3390:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3382:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3462:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3475:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3486:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3471:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3471:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3418:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3418:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3543:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3552:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3499:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3499:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3499:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3625:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3638:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3649:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3634:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3581:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3581:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3581:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3328:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3340:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3348:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3356:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3367:4:16", + "type": "" + } + ], + "src": "3218:442:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o" + }, + "methodIdentifiers": { + "addToFeeReceiverSetter(address)": "5ac40ab3", + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e", + "removeFromFeeReceiverSetter(address)": "48397023", + "setFeeReceiver(address)": "efdcd974" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/LiquidityProvider.sol": { + "LiquidityProvider": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1052": { + "entryPoint": null, + "id": 1052, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 273, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 167, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 224, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1355:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "939:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "985:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "987:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "987:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "960:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "969:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "956:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "981:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "952:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "952:32:16" + }, + "nodeType": "YulIf", + "src": "949:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1078:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1093:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1107:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1122:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1179:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1164:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1164:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1188:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1132:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1132:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1122:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1216:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1231:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1235:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1261:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1307:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1318:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1303:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1327:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1271:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1271:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1261:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "901:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "912:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "924:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "932:6:16", + "type": "" + } + ], + "src": "845:507:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addLiquidity_1185": { + "entryPoint": 1933, + "id": 1185, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@_swap_1350": { + "entryPoint": 2677, + "id": 1350, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addLiquidity_1260": { + "entryPoint": 216, + "id": 1260, + "parameterSlots": 6, + "returnSlots": 3 + }, + "@getAmountOut_2294": { + "entryPoint": 3071, + "id": 2294, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getAmountsOut_1536": { + "entryPoint": 1503, + "id": 1536, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@quote_1460": { + "entryPoint": 3305, + "id": 1460, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sortTokens_2236": { + "entryPoint": 3484, + "id": 2236, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@swapExactTokensForTokens_1421": { + "entryPoint": 802, + "id": 1421, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 5088, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4160, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 5244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 5337, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 5109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": { + "entryPoint": 3934, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4921, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5265, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 5358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256_fromMemory": { + "entryPoint": 5719, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4246, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6542, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4406, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4075, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5310, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 5047, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5154, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6577, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 5954, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3766, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 6414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 6301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3786, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3880, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4650, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "increment_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 5495, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 6367, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4603, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4155, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": { + "entryPoint": 5611, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": { + "entryPoint": 6155, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": { + "entryPoint": 6463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": { + "entryPoint": 6009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3836, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 5221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3890, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:20048:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:16", + "type": "" + } + ], + "src": "841:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:16" + }, + "nodeType": "YulIf", + "src": "977:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:16", + "type": "" + } + ], + "src": "924:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:16", + "type": "" + } + ], + "src": "1052:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1348:906:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1395:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1397:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1397:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1397:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1369:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1378:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1365:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1365:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1390:3:16", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1361:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1361:33:16" + }, + "nodeType": "YulIf", + "src": "1358:120:16" + }, + { + "nodeType": "YulBlock", + "src": "1488:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1503:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1507:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1532:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1567:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1578:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1563:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1587:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1542:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1542:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1532:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1615:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1630:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1644:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1634:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1660:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1695:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1706:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1691:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1670:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1670:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1660:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1743:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1758:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1762:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1788:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1823:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1834:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1819:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1819:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1843:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1798:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1798:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1788:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1871:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1886:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1900:2:16", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1890:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1916:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1951:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1962:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1947:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1971:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1926:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1926:53:16" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1916:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1999:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2014:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2028:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2018:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2045:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2080:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2091:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2076:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2100:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2055:53:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2045:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2128:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2143:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2157:3:16", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2147:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2174:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2220:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2205:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2229:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2184:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2184:53:16" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2174:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1278:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1289:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1301:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1309:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1317:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1325:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1333:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1341:6:16", + "type": "" + } + ], + "src": "1197:1057:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2325:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2342:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2365:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2347:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2347:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2335:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2335:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2335:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2313:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2320:3:16", + "type": "" + } + ], + "src": "2260:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2538:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2548:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2560:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2556:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2556:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2548:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2628:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2641:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2637:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2584:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2584:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2584:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2709:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2722:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2733:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2718:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2665:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2665:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2665:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2791:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2815:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2800:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2747:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2747:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2494:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2506:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2514:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2522:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2533:4:16", + "type": "" + } + ], + "src": "2384:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2921:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2938:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2941:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2931:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2931:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2931:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2832:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3044:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3054:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2955:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3177:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3177:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "3078:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3308:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3357:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3359:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3359:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3359:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3336:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3344:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3332:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3332:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3351:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3328:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3321:35:16" + }, + "nodeType": "YulIf", + "src": "3318:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "3449:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3472:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3459:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3459:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3449:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3522:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3524:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3524:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3524:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3494:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3502:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3491:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3491:30:16" + }, + "nodeType": "YulIf", + "src": "3488:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3614:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3630:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3638:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3626:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3614:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3662:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3676:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3684:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3672:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3672:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3658:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3658:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3692:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3655:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3655:41:16" + }, + "nodeType": "YulIf", + "src": "3652:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3275:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3283:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "3291:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3301:6:16", + "type": "" + } + ], + "src": "3218:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:714:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3973:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3975:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3975:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3975:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3948:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3944:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3969:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3940:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3940:32:16" + }, + "nodeType": "YulIf", + "src": "3937:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4066:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4081:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4095:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4085:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4110:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4145:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4156:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4141:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4165:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4120:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4120:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4110:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4193:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4208:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4222:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4212:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4238:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4273:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4284:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4269:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4293:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4248:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4248:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4238:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4321:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4336:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4367:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4378:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4363:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4350:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4350:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4340:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4429:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4431:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4431:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4431:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4401:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4398:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4398:30:16" + }, + "nodeType": "YulIf", + "src": "4395:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "4526:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4607:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4592:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4616:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "4544:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "4544:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4526:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4534:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3873:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3884:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3896:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3904:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3912:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3920:6:16", + "type": "" + } + ], + "src": "3792:849:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4721:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4732:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4748:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4742:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4742:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4732:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4704:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4714:6:16", + "type": "" + } + ], + "src": "4647:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4878:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4895:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4900:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4888:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4888:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4888:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "4916:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4935:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4931:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4931:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4916:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4850:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4855:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4866:11:16", + "type": "" + } + ], + "src": "4767:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5029:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5039:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5047:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5039:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5060:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5072:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5077:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5068:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5068:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5060:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5016:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5024:4:16", + "type": "" + } + ], + "src": "4957:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5150:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5167:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5190:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5172:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5172:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5160:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5160:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5138:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5145:3:16", + "type": "" + } + ], + "src": "5095:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5289:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5333:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5341:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5299:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "5299:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5299:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "5354:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5372:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5377:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5368:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5354:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5262:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5270:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5278:10:16", + "type": "" + } + ], + "src": "5209:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5469:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5479:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5491:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5496:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5487:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "5479:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5456:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "5464:4:16", + "type": "" + } + ], + "src": "5394:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5667:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5677:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5739:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5691:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "5691:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5681:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5754:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5835:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5840:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5761:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "5761:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5754:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5856:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5921:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5871:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "5871:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5860:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5936:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5950:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6040:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6067:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6061:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "6061:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6044:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6087:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "6138:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6153:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6094:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6094:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6087:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6170:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6233:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6180:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "6180:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6170:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5988:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5991:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5985:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5999:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6001:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6010:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6013:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6006:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6001:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5970:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5972:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5981:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5976:1:16", + "type": "" + } + ] + } + ] + }, + "src": "5966:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "6259:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6266:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6259:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5646:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5653:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5662:3:16", + "type": "" + } + ], + "src": "5543:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6429:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6439:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6451:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6447:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6447:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6439:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6486:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6497:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6482:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6482:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6505:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6501:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6501:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6475:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "6531:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6633:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6642:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6539:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "6539:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6531:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6401:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6413:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6424:4:16", + "type": "" + } + ], + "src": "6281:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6718:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6736:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6743:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6732:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6732:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6752:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6748:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6728:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6728:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6718:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6691:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6701:6:16", + "type": "" + } + ], + "src": "6660:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6796:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6813:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6816:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6806:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6806:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6806:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6910:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6913:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6903:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6903:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6903:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6937:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6927:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6927:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "6768:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6997:238:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7007:58:16", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7029:6:16" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7059:4:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7037:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "7037:27:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7025:40:16" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7011:10:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7176:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7178:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7178:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7178:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7119:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7131:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7116:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7116:34:16" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7155:10:16" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7167:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7152:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7113:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7113:62:16" + }, + "nodeType": "YulIf", + "src": "7110:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7214:2:16", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7218:10:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7207:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7207:22:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7207:22:16" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6983:6:16", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "6991:4:16", + "type": "" + } + ], + "src": "6954:281:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7282:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7292:30:16", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7302:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "7302:20:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7292:6:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7351:6:16" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7359:4:16" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7331:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "7331:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7331:33:16" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7266:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7275:6:16", + "type": "" + } + ], + "src": "7241:129:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7458:229:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7563:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7565:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7565:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7565:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7535:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7543:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7532:30:16" + }, + "nodeType": "YulIf", + "src": "7529:56:16" + }, + { + "nodeType": "YulAssignment", + "src": "7595:25:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7607:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7615:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7603:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7603:17:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7595:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:23:16", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7669:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7675:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7665:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:15:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7657:4:16" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7453:4:16", + "type": "" + } + ], + "src": "7376:311:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7812:608:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7822:90:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7847:56:16" + }, + "nodeType": "YulFunctionCall", + "src": "7847:64:16" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "7831:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "7831:81:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7822:5:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7921:16:16", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7932:5:16" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "7925:3:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7954:5:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7947:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7947:21:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7947:21:16" + }, + { + "nodeType": "YulAssignment", + "src": "7977:23:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7988:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7995:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7984:16:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "7977:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8010:44:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8028:6:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8040:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8048:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8024:30:16" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "8014:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8082:103:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8096:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8096:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8096:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8069:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8077:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8066:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8066:15:16" + }, + "nodeType": "YulIf", + "src": "8063:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8270:144:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8285:21:16", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8303:3:16" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "8289:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8327:3:16" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "8353:10:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8365:3:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8332:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8332:37:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8320:50:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8320:50:16" + }, + { + "nodeType": "YulAssignment", + "src": "8383:21:16", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8394:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8399:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8390:14:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8383:3:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8223:3:16" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8228:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8220:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8220:15:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8236:25:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8238:21:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8249:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8254:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8245:14:16" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8238:3:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8198:21:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8200:17:16", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8211:6:16" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8204:3:16", + "type": "" + } + ] + } + ] + }, + "src": "8194:220:16" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7782:6:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7790:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7798:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7806:5:16", + "type": "" + } + ], + "src": "7710:710:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8520:293:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8569:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8571:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8571:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8571:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8548:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8556:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8544:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8544:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8563:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8540:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8540:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8533:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8533:35:16" + }, + "nodeType": "YulIf", + "src": "8530:122:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8661:34:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8688:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8675:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8675:20:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8665:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8704:103:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8780:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8776:17:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8795:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8803:3:16" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8713:62:16" + }, + "nodeType": "YulFunctionCall", + "src": "8713:94:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8704:5:16" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8498:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8506:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8514:5:16", + "type": "" + } + ], + "src": "8443:370:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8944:704:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8990:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8992:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8992:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8992:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8965:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8974:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8961:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8957:32:16" + }, + "nodeType": "YulIf", + "src": "8954:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9083:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9098:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9112:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9102:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9127:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9162:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9173:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9158:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9158:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9182:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9137:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9137:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9127:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9210:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9225:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9239:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9229:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9255:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9290:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9301:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9286:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9286:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9310:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9265:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9265:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9255:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9338:303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9353:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9380:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9367:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9367:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9357:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9446:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9448:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9448:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9448:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9418:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9426:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9415:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9415:30:16" + }, + "nodeType": "YulIf", + "src": "9412:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "9543:88:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9603:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9599:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9623:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9553:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "9553:78:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9543:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8898:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8909:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8921:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8929:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8937:6:16", + "type": "" + } + ], + "src": "8819:829:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9719:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9736:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9759:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9741:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9729:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9707:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9714:3:16", + "type": "" + } + ], + "src": "9654:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9904:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9914:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9926:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9937:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9922:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9922:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9914:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9994:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10007:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10003:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10003:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9950:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9950:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9950:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10075:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10088:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10084:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10031:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10031:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10031:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9868:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9880:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9888:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9899:4:16", + "type": "" + } + ], + "src": "9778:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10179:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10189:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10204:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10198:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "10198:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10189:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10247:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "10220:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "10220:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10220:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10157:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10165:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10173:5:16", + "type": "" + } + ], + "src": "10116:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10342:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10388:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10390:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10390:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10390:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10363:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10372:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10359:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10359:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10384:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10355:32:16" + }, + "nodeType": "YulIf", + "src": "10352:119:16" + }, + { + "nodeType": "YulBlock", + "src": "10481:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10496:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10500:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10525:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10571:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10582:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10567:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10591:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "10535:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "10535:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10525:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10312:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10323:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10335:6:16", + "type": "" + } + ], + "src": "10265:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10776:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10786:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10798:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10809:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10794:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10794:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10786:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10866:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10879:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10890:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10875:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10875:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10822:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10822:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10822:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10947:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10960:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10971:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10956:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10903:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10903:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10903:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11053:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11038:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10985:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10985:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10732:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10744:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10752:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10760:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10771:4:16", + "type": "" + } + ], + "src": "10622:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11112:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11122:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11147:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11140:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11140:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11133:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11133:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11122:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11094:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11104:7:16", + "type": "" + } + ], + "src": "11070:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11206:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11260:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11269:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11272:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11262:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11262:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11262:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11229:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11251:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11236:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "11236:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11226:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11226:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11219:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11219:40:16" + }, + "nodeType": "YulIf", + "src": "11216:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11199:5:16", + "type": "" + } + ], + "src": "11166:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11348:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11358:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11373:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11367:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11367:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11358:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11413:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "11389:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "11389:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11389:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11326:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11334:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11342:5:16", + "type": "" + } + ], + "src": "11288:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11505:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11551:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11553:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11553:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11553:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11526:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11535:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11522:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11522:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11547:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11518:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11518:32:16" + }, + "nodeType": "YulIf", + "src": "11515:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11644:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11659:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11673:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11663:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11688:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11731:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11742:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11727:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11751:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11698:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "11698:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11688:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11475:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11486:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11498:6:16", + "type": "" + } + ], + "src": "11431:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11880:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11890:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11902:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11913:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11898:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11898:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11890:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11970:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11979:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11926:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "11926:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11926:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11852:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11864:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11875:4:16", + "type": "" + } + ], + "src": "11782:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12098:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12092:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "12092:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12141:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "12114:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "12114:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12114:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:16", + "type": "" + } + ], + "src": "12010:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12236:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12282:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12284:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12284:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12284:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12257:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12266:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12253:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12253:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12278:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12249:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12249:32:16" + }, + "nodeType": "YulIf", + "src": "12246:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12375:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12390:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12404:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12394:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12419:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12465:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12461:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12461:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12485:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "12429:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "12429:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12419:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12206:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12217:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12229:6:16", + "type": "" + } + ], + "src": "12159:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12544:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12561:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12564:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12554:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12554:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12554:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12658:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12661:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12651:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12651:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12651:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12682:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12685:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12675:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12675:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12675:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "12516:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12768:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12814:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12816:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12816:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12816:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12789:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12798:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12785:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12781:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12781:32:16" + }, + "nodeType": "YulIf", + "src": "12778:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12907:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12922:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12936:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12926:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12951:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12986:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12997:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12982:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12982:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13006:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12961:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "12961:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12951:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12738:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12749:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12761:6:16", + "type": "" + } + ], + "src": "12702:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13065:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13085:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13075:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13075:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13075:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13179:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13182:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13172:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13172:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13172:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13196:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13196:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13196:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "13037:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13268:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13278:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13301:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13283:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13283:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13278:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13312:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13335:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13317:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13317:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13312:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13346:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13358:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13361:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13354:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13354:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13346:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13388:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13390:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "13390:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13390:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13379:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13385:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13376:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13376:11:16" + }, + "nodeType": "YulIf", + "src": "13373:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13254:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13257:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "13263:4:16", + "type": "" + } + ], + "src": "13223:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13536:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13541:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13529:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13529:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "13557:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13576:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13581:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13572:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13572:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13557:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13491:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13496:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13507:11:16", + "type": "" + } + ], + "src": "13423:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:32:16", + "type": "", + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13715:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:56:16" + } + ] + }, + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:16", + "type": "" + } + ], + "src": "13598:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13930:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13940:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14006:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14011:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13947:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "13947:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13940:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14112:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulIdentifier", + "src": "14023:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "14023:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14023:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "14125:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14136:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14141:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14132:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14125:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13918:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13926:3:16", + "type": "" + } + ], + "src": "13784:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14327:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14337:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14345:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14337:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14395:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14380:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14403:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14409:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14399:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14373:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "14373:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "14429:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14563:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14437:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "14437:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14429:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14307:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14322:4:16", + "type": "" + } + ], + "src": "14156:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14675:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14721:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14723:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14723:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14723:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14696:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14705:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14692:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14692:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14688:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14688:32:16" + }, + "nodeType": "YulIf", + "src": "14685:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14814:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14829:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14833:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14858:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14904:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14915:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14900:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14900:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14924:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "14868:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "14868:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14858:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14952:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14997:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15043:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15054:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15039:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15039:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15063:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15007:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "15007:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14997:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14637:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14648:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14660:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14668:6:16", + "type": "" + } + ], + "src": "14581:507:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15138:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15148:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15171:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15153:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15153:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15148:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15182:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15205:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15187:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15187:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15182:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15216:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15227:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15230:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15223:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15216:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15256:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15258:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15258:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15258:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15248:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15251:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15245:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15245:10:16" + }, + "nodeType": "YulIf", + "src": "15242:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15125:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15128:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15134:3:16", + "type": "" + } + ], + "src": "15094:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15334:190:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15344:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15371:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15353:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15353:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15344:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15467:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15469:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15469:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15469:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15392:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15399:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15389:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15389:77:16" + }, + "nodeType": "YulIf", + "src": "15386:103:16" + }, + { + "nodeType": "YulAssignment", + "src": "15498:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15509:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15505:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15505:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "15498:3:16" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15320:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "15330:3:16", + "type": "" + } + ], + "src": "15291:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15558:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15575:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15578:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15568:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15568:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15568:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15672:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15675:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15665:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15665:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15665:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15696:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15699:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15689:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15689:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15689:15:16" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "15530:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15870:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15880:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15892:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15903:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15888:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15880:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15960:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15973:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15984:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15969:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15969:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15916:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15916:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15916:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16041:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16054:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16065:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16050:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16050:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15997:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15997:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15997:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16123:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16136:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16147:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16132:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16079:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "16079:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16079:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15838:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15846:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15854:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15865:4:16", + "type": "" + } + ], + "src": "15716:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16270:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16292:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16300:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16288:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16304:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_I" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16281:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16281:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16281:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16360:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16368:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16356:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16356:15:16" + }, + { + "hexValue": "4e5055545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16373:13:16", + "type": "", + "value": "NPUT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16349:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16349:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:38:16" + } + ] + }, + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16262:6:16", + "type": "" + } + ], + "src": "16164:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16546:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16556:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16622:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16627:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16563:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16563:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16556:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16728:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulIdentifier", + "src": "16639:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16639:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16639:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16741:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16752:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16757:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16748:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16741:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16534:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16542:3:16", + "type": "" + } + ], + "src": "16400:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16943:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16953:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16965:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16976:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16961:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16953:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17000:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17011:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16996:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16996:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17019:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17025:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17015:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17015:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16989:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16989:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16989:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17045:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17179:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17053:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17053:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17045:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16923:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16938:4:16", + "type": "" + } + ], + "src": "16772:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:121:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_L" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:16" + }, + { + "hexValue": "4951554944495459", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:10:16", + "type": "", + "value": "IQUIDITY" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17382:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:35:16" + } + ] + }, + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:16", + "type": "" + } + ], + "src": "17197:227:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17576:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17586:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17652:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17657:2:16", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17593:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17593:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17586:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17758:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulIdentifier", + "src": "17669:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17669:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17669:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17771:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17782:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17787:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17778:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17771:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17564:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17572:3:16", + "type": "" + } + ], + "src": "17430:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17973:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17983:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17995:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18006:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17991:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17991:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18030:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18041:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18026:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18026:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18049:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18055:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18045:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18045:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18019:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18019:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18019:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18075:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18209:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18083:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18083:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18075:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17953:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17968:4:16", + "type": "" + } + ], + "src": "17802:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18275:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18285:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18308:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18290:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18290:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18285:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18342:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18324:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18324:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18319:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18353:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18376:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18379:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "18372:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18372:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "18357:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18390:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "18419:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18401:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18401:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18390:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18608:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18610:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18610:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18610:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18541:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18534:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18534:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18564:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18571:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18580:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18567:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18561:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18561:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "18514:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18514:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18494:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18494:113:16" + }, + "nodeType": "YulIf", + "src": "18491:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18258:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18261:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "18267:7:16", + "type": "" + } + ], + "src": "18227:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18671:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18688:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18691:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18681:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18681:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18681:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18785:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18788:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18778:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18778:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18778:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18809:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18812:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "18802:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18802:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18802:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "18643:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18871:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18881:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18904:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18886:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18886:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18881:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18915:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18938:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18920:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18920:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18915:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18962:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "18964:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18964:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18964:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18959:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18952:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18952:9:16" + }, + "nodeType": "YulIf", + "src": "18949:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "18994:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19003:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19006:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18999:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18999:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "18994:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18860:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18863:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "18869:1:16", + "type": "" + } + ], + "src": "18829:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19126:122:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19148:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19156:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19144:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19144:14:16" + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19160:34:16", + "type": "", + "value": "UniswapV2DefiLibrary: INSUFFICIE" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19137:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19137:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19137:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19216:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19224:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19212:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19212:15:16" + }, + { + "hexValue": "4e545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19229:11:16", + "type": "", + "value": "NT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19205:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19205:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19205:36:16" + } + ] + }, + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19118:6:16", + "type": "" + } + ], + "src": "19020:228:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19400:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19410:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19476:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19481:2:16", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19417:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19417:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19410:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19582:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulIdentifier", + "src": "19493:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "19493:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19493:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "19595:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19606:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19611:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19602:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19595:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19388:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19396:3:16", + "type": "" + } + ], + "src": "19254:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19797:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19807:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19819:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19830:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19815:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19815:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19807:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19865:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19850:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19873:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19879:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19869:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19869:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19843:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19843:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19843:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "19899:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20033:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19907:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "19907:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19899:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19777:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19792:4:16", + "type": "" + } + ], + "src": "19626:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1034": [ + { + "length": 32, + "start": 247 + }, + { + "length": 32, + "start": 808 + }, + { + "length": 32, + "start": 1940 + }, + { + "length": 32, + "start": 2152 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o" + }, + "methodIdentifiers": { + "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f", + "getAmountsOut(address,uint256,address[])": "bb7b9c76", + "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}" + } + }, + "contracts/core/Pool.sol": { + "Pool": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientLiquidity", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1659": { + "entryPoint": null, + "id": 1659, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 701, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 516, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 662, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 536, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 856, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 327, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 826, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 794, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 280, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 233, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 576, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 634, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 430, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 586, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 629, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MINIMUM_LIQUIDITY_1640": { + "entryPoint": 3762, + "id": 1640, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_542": { + "entryPoint": 4500, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 5335, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_burn_524": { + "entryPoint": 5205, + "id": 524, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 5032, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 4492, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 4518, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 4666, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_1699": { + "entryPoint": 5187, + "id": 1699, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 5806, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 3768, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 991, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 2461, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 1083, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTokenReserves_2077": { + "entryPoint": 3745, + "id": 2077, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@init_1683": { + "entryPoint": 3903, + "id": 1683, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@liquidateLpTokens_1958": { + "entryPoint": 2533, + "id": 1958, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@min_1558": { + "entryPoint": 5162, + "id": 1558, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_1816": { + "entryPoint": 1092, + "id": 1816, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_197": { + "entryPoint": 845, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sqrt_1612": { + "entryPoint": 4910, + "id": 1612, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@swap_2065": { + "entryPoint": 1681, + "id": 2065, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@symbol_206": { + "entryPoint": 3564, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sync_2102": { + "entryPoint": 4170, + "id": 2102, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@totalSupply_224": { + "entryPoint": 1026, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 1036, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 3710, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 6611, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 7746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 6665, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 7355, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 7153, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 6846, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 6686, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 7767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 7376, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256t_address": { + "entryPoint": 7029, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7313, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 6762, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6442, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 6942, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 7328, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 7682, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7812, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 6777, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6499, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7112, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 6957, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 6355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 6366, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 7867, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 7633, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 7520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 7468, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 6570, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 6750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 6538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6632, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 6929, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 6383, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 7264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 7421, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 7586, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 7217, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 6533, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 6425, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 6588, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 7723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 6642, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10776:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5288:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5334:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5336:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5336:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5336:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5309:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5318:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5305:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5330:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5301:32:16" + }, + "nodeType": "YulIf", + "src": "5298:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5427:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5442:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5456:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5446:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5471:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5506:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5517:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5502:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5502:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5526:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5481:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5481:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5471:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5554:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5569:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5583:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5573:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5599:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5634:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5645:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5630:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5654:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5609:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5609:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5599:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5682:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5697:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5711:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5701:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5727:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5773:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5782:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5737:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5737:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5727:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5242:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5253:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5265:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5273:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5281:6:16", + "type": "" + } + ], + "src": "5188:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5939:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5949:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5961:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5972:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5957:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5949:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6053:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6038:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5985:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6110:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6123:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6134:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6119:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6119:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6066:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6066:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6066:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5903:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5915:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5923:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5934:4:16", + "type": "" + } + ], + "src": "5813:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6234:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6280:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6282:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6282:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6282:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6255:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6264:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6251:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6251:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6276:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6247:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6247:32:16" + }, + "nodeType": "YulIf", + "src": "6244:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6373:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6388:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6402:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6392:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6417:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6452:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6463:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6448:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6448:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6472:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6427:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6427:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6417:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6500:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6515:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6529:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6519:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6545:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6580:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6591:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6576:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6576:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6600:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6555:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6555:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6545:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6196:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6207:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6219:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6227:6:16", + "type": "" + } + ], + "src": "6151:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6659:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6676:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6679:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6669:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6669:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6669:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6776:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6766:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6766:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6766:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6797:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6790:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6790:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6790:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6631:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6868:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6878:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6892:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6898:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6888:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6878:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6909:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6939:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6945:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6935:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6913:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6986:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7000:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7014:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7022:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7010:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7010:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7000:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6966:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6959:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6959:26:16" + }, + "nodeType": "YulIf", + "src": "6956:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7089:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "7103:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7103:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7103:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7053:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7076:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7084:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7073:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7073:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7050:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7050:38:16" + }, + "nodeType": "YulIf", + "src": "7047:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6852:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6861:6:16", + "type": "" + } + ], + "src": "6817:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7208:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7225:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7248:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7230:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7230:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7218:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7218:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7196:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7203:3:16", + "type": "" + } + ], + "src": "7143:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7365:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7375:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7387:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7398:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7383:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7383:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7375:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7455:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7468:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7479:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7464:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7411:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7411:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7411:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7337:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7349:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7360:4:16", + "type": "" + } + ], + "src": "7267:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7558:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7568:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7583:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7577:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "7577:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7568:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7626:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7599:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7599:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7599:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7536:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7544:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7552:5:16", + "type": "" + } + ], + "src": "7495:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7721:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7767:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7769:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7769:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7769:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7742:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7751:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7738:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7763:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7734:32:16" + }, + "nodeType": "YulIf", + "src": "7731:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7860:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7875:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7889:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7879:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7904:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7950:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7946:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7970:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "7914:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "7914:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7691:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7702:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7714:6:16", + "type": "" + } + ], + "src": "7644:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8029:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8049:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8039:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8039:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8039:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8143:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8146:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8136:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8136:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8136:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8167:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8170:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8160:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8160:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "8001:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8232:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8242:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8265:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8247:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8247:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8242:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8276:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8299:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8281:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8281:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8276:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8310:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8325:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8318:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8310:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8352:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8354:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8354:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8354:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8343:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8349:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8340:11:16" + }, + "nodeType": "YulIf", + "src": "8337:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8218:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8221:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "8227:4:16", + "type": "" + } + ], + "src": "8187:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8435:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8445:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8468:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8450:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8450:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8445:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8479:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8502:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8484:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8484:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8479:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8513:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8536:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8539:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8532:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8532:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "8517:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8550:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "8579:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8561:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8561:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8550:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8768:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8701:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8694:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8694:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8724:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8731:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8740:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8727:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8721:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8721:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8674:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8674:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8654:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8654:113:16" + }, + "nodeType": "YulIf", + "src": "8651:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8418:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8421:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "8427:7:16", + "type": "" + } + ], + "src": "8387:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8831:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8848:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8841:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8841:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8945:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8948:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8938:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8938:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8938:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8969:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8972:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8962:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8962:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8962:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "8803:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9031:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9041:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9064:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9046:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9046:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9041:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9075:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9098:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9080:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9080:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9075:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9122:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "9124:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "9124:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9124:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9119:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9112:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9112:9:16" + }, + "nodeType": "YulIf", + "src": "9109:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "9154:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9163:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9166:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9159:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "9154:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9020:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9023:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "9029:1:16", + "type": "" + } + ], + "src": "8989:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9306:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9316:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9328:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9339:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9324:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9324:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9316:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9396:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9409:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9420:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9405:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9352:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9352:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9352:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9477:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9501:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9486:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "9433:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9433:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9270:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9282:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9290:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9301:4:16", + "type": "" + } + ], + "src": "9180:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9558:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9612:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9621:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9624:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9614:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9614:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9581:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9603:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9588:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "9588:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9578:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9578:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9571:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9571:40:16" + }, + "nodeType": "YulIf", + "src": "9568:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9551:5:16", + "type": "" + } + ], + "src": "9518:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9700:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9710:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9725:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "9719:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9710:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9765:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9741:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9741:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9678:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9686:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9694:5:16", + "type": "" + } + ], + "src": "9640:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9857:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9905:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9905:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9878:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9887:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9874:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9874:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9870:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9870:32:16" + }, + "nodeType": "YulIf", + "src": "9867:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9996:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10011:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10025:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10015:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10040:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10083:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10094:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10079:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10079:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10103:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "10050:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "10050:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10040:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9827:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9838:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9850:6:16", + "type": "" + } + ], + "src": "9783:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10288:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10298:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10310:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10321:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10306:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10306:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10298:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10378:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10391:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10402:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10387:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10334:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10334:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10334:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10459:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10468:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10415:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10415:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10415:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10541:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10554:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10565:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10550:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10550:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10497:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10497:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10497:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10244:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10264:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10272:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10283:4:16", + "type": "" + } + ], + "src": "10134:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10626:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10636:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10659:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10641:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10636:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10670:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10693:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10675:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10675:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10670:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10704:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10715:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10718:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10711:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10711:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10704:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10744:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10746:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "10746:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10746:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10736:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10739:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10733:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10733:10:16" + }, + "nodeType": "YulIf", + "src": "10730:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10613:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10616:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10622:3:16", + "type": "" + } + ], + "src": "10582:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1631": [ + { + "length": 32, + "start": 3928 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o" + }, + "methodIdentifiers": { + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "name()": "06fdde03", + "swap(uint256,uint256,address)": "6d9a640a", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IFactory.sol": { + "IFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolPair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IPool.sol": { + "IPool": { + "abi": [ + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "swap(uint256,uint256,address)": "6d9a640a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IWedu.sol": { + "IWEDU": { + "abi": [ + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "deposit()": "d0e30db0", + "transfer(address,uint256)": "a9059cbb", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}" + } + }, + "contracts/core/libraries/Library.sol": { + "DefiLibrary": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "AppleToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2308": { + "entryPoint": null, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:13:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2321": { + "entryPoint": 798, + "id": 2321, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:13:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "CherryToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2335": { + "entryPoint": null, + "id": 2335, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:14:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2348": { + "entryPoint": 798, + "id": 2348, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:14:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "WrappedEduToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2362": { + "entryPoint": null, + "id": 2362, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ", + "sourceMap": "120:325:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:325:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:325:15:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2375": { + "entryPoint": 798, + "id": 2375, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ", + "sourceMap": "120:325:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;322:87:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;322:87:15:-;383:18;389:3;394:6;383:5;:18::i;:::-;322:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEduToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0x0e77a55918a3e8b9f3ad3c47b4a00f30e7c01e54b020ab9c6dbdb183ff3327c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea886a6d9652fa622008f2e3bac165b09329d1bdefdc89bce5fcc1373c8343df\",\"dweb:/ipfs/QmQ1kQ6AnmSbzT1vhdSkf2ExvgXKwDPhgzsp1gLWj21mER\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/build-info/7153d89ef561a9ce69894956d250c390.json b/Core uniswap/ignition/deployments/chain-11155111/build-info/7153d89ef561a9ce69894956d250c390.json new file mode 100644 index 00000000..21fd99be --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/build-info/7153d89ef561a9ce69894956d250c390.json @@ -0,0 +1,79953 @@ +{ + "id": "7153d89ef561a9ce69894956d250c390", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "contracts/core/Factory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}" + }, + "contracts/core/interfaces/IFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}" + }, + "contracts/core/interfaces/IPool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}" + }, + "contracts/core/interfaces/IWedu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}" + }, + "contracts/core/libraries/Library.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}" + }, + "contracts/core/LiquidityProvider.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}" + }, + "contracts/core/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}" + }, + "contracts/core/Pool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}" + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEduToken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n function deposit(uint256 amount) public payable {\r\n _mint(msg.sender, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2397, + "file": "contracts/core/Pool.sol", + "start": 2380 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2416, + "file": "contracts/core/Pool.sol", + "start": 2399 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4393, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4375 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4413, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4395 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 136 + ], + "IERC20Errors": [ + 41 + ], + "IERC721Errors": [ + 89 + ] + }, + "id": 137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "138:141:0", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 41, + "linearizedBaseContracts": [ + 41 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "309:309:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 11, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "654:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "670:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "687:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:0" + }, + "src": "623:80:0" + }, + { + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "709:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 16, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "891:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:0" + }, + "src": "866:41:0" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "913:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 21, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "1104:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "src": "1077:45:0" + }, + { + "documentation": { + "id": 22, + "nodeType": "StructuredDocumentation", + "src": "1128:345:0", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 30, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1511:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1528:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1547:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:0" + }, + "src": "1478:85:0" + }, + { + "documentation": { + "id": 31, + "nodeType": "StructuredDocumentation", + "src": "1569:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 35, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1775:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:0" + }, + "src": "1748:45:0" + }, + { + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "1799:195:0", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 40, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:0" + }, + "src": "1999:43:0" + } + ], + "scope": 137, + "src": "280:1764:0", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 42, + "nodeType": "StructuredDocumentation", + "src": "2046:143:0", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2220:219:0", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 47, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:0", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "2469:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:0" + }, + "src": "2444:40:0" + }, + { + "documentation": { + "id": 48, + "nodeType": "StructuredDocumentation", + "src": "2490:132:0", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 52, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2656:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:0" + }, + "src": "2627:46:0" + }, + { + "documentation": { + "id": 53, + "nodeType": "StructuredDocumentation", + "src": "2679:289:0", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 61, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3000:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3016:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3033:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:0" + }, + "src": "2973:75:0" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "3054:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 66, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "3237:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 63, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:0" + }, + "src": "3211:42:0" + }, + { + "documentation": { + "id": 67, + "nodeType": "StructuredDocumentation", + "src": "3259:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 71, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "3451:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:0" + }, + "src": "3423:46:0" + }, + { + "documentation": { + "id": 72, + "nodeType": "StructuredDocumentation", + "src": "3475:247:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 78, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3760:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3778:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:0" + }, + "src": "3727:68:0" + }, + { + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "3801:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 83, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "4008:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:0" + }, + "src": "3980:46:0" + }, + { + "documentation": { + "id": 84, + "nodeType": "StructuredDocumentation", + "src": "4032:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 88, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "4262:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:0" + }, + "src": "4234:46:0" + } + ], + "scope": 137, + "src": "2190:2092:0", + "usedErrors": [ + 47, + 52, + 61, + 66, + 71, + 78, + 83, + 88 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 90, + "nodeType": "StructuredDocumentation", + "src": "4284:145:0", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "4461:361:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 101, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4860:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4876:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4893:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4909:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:0" + }, + "src": "4827:99:0" + }, + { + "documentation": { + "id": 102, + "nodeType": "StructuredDocumentation", + "src": "4932:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 106, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "5116:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:0" + }, + "src": "5089:43:0" + }, + { + "documentation": { + "id": 107, + "nodeType": "StructuredDocumentation", + "src": "5138:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 111, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "5331:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:0" + }, + "src": "5302:47:0" + }, + { + "documentation": { + "id": 112, + "nodeType": "StructuredDocumentation", + "src": "5355:256:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 118, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:0" + }, + "src": "5616:68:0" + }, + { + "documentation": { + "id": 119, + "nodeType": "StructuredDocumentation", + "src": "5690:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 123, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:0", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "5898:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:0" + }, + "src": "5869:47:0" + }, + { + "documentation": { + "id": 124, + "nodeType": "StructuredDocumentation", + "src": "5922:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 128, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "6153:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:0" + }, + "src": "6124:47:0" + }, + { + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "6177:280:0", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 135, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6494:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6513:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:0" + }, + "src": "6462:73:0" + } + ], + "scope": 137, + "src": "4430:2107:0", + "usedErrors": [ + 101, + 106, + 111, + 118, + 123, + 128, + 135 + ], + "usedEvents": [] + } + ], + "src": "112:6426:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 140, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 730, + "src": "131:36:1", + "symbolAliases": [ + { + "foreign": { + "id": 139, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "139:6:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 142, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 756, + "src": "168:63:1", + "symbolAliases": [ + { + "foreign": { + "id": 141, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "176:14:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 144, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 786, + "src": "232:48:1", + "symbolAliases": [ + { + "foreign": { + "id": 143, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "240:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 146, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 137, + "src": "281:65:1", + "symbolAliases": [ + { + "foreign": { + "id": 145, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "289:12:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 148, + "name": "Context", + "nameLocations": [ + "1133:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 785, + "src": "1133:7:1" + }, + "id": 149, + "nodeType": "InheritanceSpecifier", + "src": "1133:7:1" + }, + { + "baseName": { + "id": 150, + "name": "IERC20", + "nameLocations": [ + "1142:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "1142:6:1" + }, + "id": 151, + "nodeType": "InheritanceSpecifier", + "src": "1142:6:1" + }, + { + "baseName": { + "id": 152, + "name": "IERC20Metadata", + "nameLocations": [ + "1150:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 755, + "src": "1150:14:1" + }, + "id": 153, + "nodeType": "InheritanceSpecifier", + "src": "1150:14:1" + }, + { + "baseName": { + "id": 154, + "name": "IERC20Errors", + "nameLocations": [ + "1166:12:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "1166:12:1" + }, + "id": 155, + "nodeType": "InheritanceSpecifier", + "src": "1166:12:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "348:757:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications." + }, + "fullyImplemented": true, + "id": 651, + "linearizedBaseContracts": [ + 651, + 41, + 755, + 729, + 785 + ], + "name": "ERC20", + "nameLocation": "1124:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1229:9:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1185:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 158, + "keyName": "account", + "keyNameLocation": "1201:7:1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1185:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1317:11:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1245:83:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 164, + "keyName": "account", + "keyNameLocation": "1261:7:1", + "keyType": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1245:63:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 163, + "keyName": "spender", + "keyNameLocation": "1288:7:1", + "keyType": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1272:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1351:12:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1335:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1385:5:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1370:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1370:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1411:7:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1396:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 170, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 187, + "nodeType": "Block", + "src": "1657:57:1", + "statements": [ + { + "expression": { + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 179, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 180, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "1675:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1667:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "1667:13:1" + }, + { + "expression": { + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "1690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 184, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "1700:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1690:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "1690:17:1" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "1425:171:1", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 188, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1627:5:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1613:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 173, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1613:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1648:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1634:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1634:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1612:44:1" + }, + "returnParameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1657:0:1" + }, + "scope": 651, + "src": "1601:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 742 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "1839:29:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1856:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "1849:12:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "1720:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "1788:4:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1792:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "1824:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1824:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1823:15:1" + }, + "scope": 651, + "src": "1779:89:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 748 + ], + "body": { + "id": 205, + "nodeType": "Block", + "src": "2043:31:1", + "statements": [ + { + "expression": { + "id": 203, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 202, + "id": 204, + "nodeType": "Return", + "src": "2053:14:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "1874:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "1990:6:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:1" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2028:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2028:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2027:15:1" + }, + "scope": 651, + "src": "1981:93:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 214, + "nodeType": "Block", + "src": "2763:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2780:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 211, + "id": 213, + "nodeType": "Return", + "src": "2773:9:1" + } + ] + }, + "documentation": { + "id": 207, + "nodeType": "StructuredDocumentation", + "src": "2080:622:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2716:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [], + "src": "2724:2:1" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2756:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 209, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2756:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2755:7:1" + }, + "scope": 651, + "src": "2707:82:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 678 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "2910:36:1", + "statements": [ + { + "expression": { + "id": 221, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2927:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 220, + "id": 222, + "nodeType": "Return", + "src": "2920:19:1" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "2795:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2858:11:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:2:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "2901:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2900:9:1" + }, + "scope": 651, + "src": "2849:97:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 236, + "nodeType": "Block", + "src": "3078:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "3095:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3095:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 231, + "id": 235, + "nodeType": "Return", + "src": "3088:25:1" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "2952:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3013:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "account", + "nameLocation": "3031:7:1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3022:17:1" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3068:9:1" + }, + "scope": 651, + "src": "3004:116:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 260, + "nodeType": "Block", + "src": "3390:103:1", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3408:5:1", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "3400:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 249, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3416:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3400:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 254, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3455:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3459:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3438:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3438:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "3438:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 246, + "id": 259, + "nodeType": "Return", + "src": "3475:11:1" + } + ] + }, + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3126:184:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3324:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "to", + "nameLocation": "3341:2:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3333:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "value", + "nameLocation": "3353:5:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3345:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3332:27:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3384:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3384:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3383:6:1" + }, + "scope": 651, + "src": "3315:178:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 706 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "3640:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 271, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 272, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "3669:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "3676:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 270, + "id": 276, + "nodeType": "Return", + "src": "3650:34:1" + } + ] + }, + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "3499:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3560:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3578:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3570:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3570:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3593:7:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3585:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3569:32:1" + }, + "returnParameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3631:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3630:9:1" + }, + "scope": 651, + "src": "3551:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 716 + ], + "body": { + "id": 301, + "nodeType": "Block", + "src": "4077:107:1", + "statements": [ + { + "assignments": [ + 289 + ], + "declarations": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4095:5:1", + "nodeType": "VariableDeclaration", + "scope": 301, + "src": "4087:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4087:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 292, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 290, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4103:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4103:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4087:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 294, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4134:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 295, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4150:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 293, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 542, + "src": "4125:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4125:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4125:31:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4173:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 287, + "id": 300, + "nodeType": "Return", + "src": "4166:11:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "3697:296:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4007:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4023:7:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4015:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4015:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "value", + "nameLocation": "4040:5:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4032:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:32:1" + }, + "returnParameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4071:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4071:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4070:6:1" + }, + "scope": 651, + "src": "3998:186:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 728 + ], + "body": { + "id": 333, + "nodeType": "Block", + "src": "4869:151:1", + "statements": [ + { + "assignments": [ + 315 + ], + "declarations": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4887:7:1", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "4879:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 316, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4897:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4897:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 320, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 321, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "4941:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4950:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 319, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "4919:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 324, + "nodeType": "ExpressionStatement", + "src": "4919:37:1" + }, + { + "expression": { + "arguments": [ + { + "id": 326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4976:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 327, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "4982:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4986:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 325, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4966:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "4966:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5009:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 313, + "id": 332, + "nodeType": "Return", + "src": "5002:11:1" + } + ] + }, + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "4190:581:1", + "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4785:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "from", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4798:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4798:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "to", + "nameLocation": "4820:2:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4812:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "value", + "nameLocation": "4832:5:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4824:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4824:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:41:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 311, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4862:6:1" + }, + "scope": 651, + "src": "4776:244:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 380, + "nodeType": "Block", + "src": "5462:231:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5476:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5484:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5484:7:1", + "typeDescriptions": {} + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5476:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 358, + "nodeType": "IfStatement", + "src": "5472:86:1", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "5496:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5544:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5536:7:1", + "typeDescriptions": {} + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 350, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "5517:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "RevertStatement", + "src": "5510:37:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5571:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5577:7:1", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5577:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5571:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 373, + "nodeType": "IfStatement", + "src": "5567:86:1", + "trueBody": { + "id": 372, + "nodeType": "Block", + "src": "5589:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5631:7:1", + "typeDescriptions": {} + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5631:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 365, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5610:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5610:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "RevertStatement", + "src": "5603:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 375, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5670:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 376, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5676:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "5680:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 374, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "5662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5662:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "5662:24:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "5026:362:1", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5402:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "from", + "nameLocation": "5420:4:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5412:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5412:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "to", + "nameLocation": "5434:2:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5426:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5426:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "value", + "nameLocation": "5446:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5438:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5411:41:1" + }, + "returnParameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5462:0:1" + }, + "scope": 651, + "src": "5393:300:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "6083:1032:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6113:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6105:7:1", + "typeDescriptions": {} + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6097:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 428, + "nodeType": "Block", + "src": "6271:362:1", + "statements": [ + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6293:11:1", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6285:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 407, + "initialValue": { + "baseExpression": { + "id": 404, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 406, + "indexExpression": { + "id": 405, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6307:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6285:37:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 408, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6354:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6340:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 418, + "nodeType": "IfStatement", + "src": "6336:115:1", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "6361:90:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 412, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6411:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 413, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6430:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "6386:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6386:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "RevertStatement", + "src": "6379:57:1" + } + ] + } + }, + { + "id": 427, + "nodeType": "UncheckedBlock", + "src": "6464:159:1", + "statements": [ + { + "expression": { + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 419, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6581:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6571:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6589:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6589:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6571:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "6571:37:1" + } + ] + } + ] + }, + "id": 429, + "nodeType": "IfStatement", + "src": "6093:540:1", + "trueBody": { + "id": 401, + "nodeType": "Block", + "src": "6117:148:1", + "statements": [ + { + "expression": { + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 397, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6233:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6249:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6233:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "6233:21:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 430, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "6647:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6653:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:1", + "typeDescriptions": {} + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6647:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 449, + "nodeType": "Block", + "src": "6862:206:1", + "statements": [ + { + "id": 448, + "nodeType": "UncheckedBlock", + "src": "6876:182:1", + "statements": [ + { + "expression": { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 442, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "7021:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 444, + "indexExpression": { + "id": 443, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7021:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7038:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7021:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "7021:22:1" + } + ] + } + ] + }, + "id": 450, + "nodeType": "IfStatement", + "src": "6643:425:1", + "trueBody": { + "id": 441, + "nodeType": "Block", + "src": "6665:191:1", + "statements": [ + { + "id": 440, + "nodeType": "UncheckedBlock", + "src": "6679:167:1", + "statements": [ + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6810:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6826:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6810:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "6810:21:1" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 452, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "7092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 453, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7098:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7102:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 451, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "7083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7083:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "EmitStatement", + "src": "7078:30:1" + } + ] + }, + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "5699:304:1", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6017:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "from", + "nameLocation": "6033:4:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6025:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "to", + "nameLocation": "6047:2:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6039:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "value", + "nameLocation": "6059:5:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6024:41:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "6083:0:1" + }, + "scope": 651, + "src": "6008:1107:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 490, + "nodeType": "Block", + "src": "7514:152:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 466, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7547:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:1", + "typeDescriptions": {} + } + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7539:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7528:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 480, + "nodeType": "IfStatement", + "src": "7524:91:1", + "trueBody": { + "id": 479, + "nodeType": "Block", + "src": "7551:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7593:7:1", + "typeDescriptions": {} + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7593:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 472, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "7572:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7572:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "RevertStatement", + "src": "7565:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7640:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7632:7:1", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7632:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "7653:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 481, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "7624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7624:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "7624:35:1" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "7121:332:1", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7467:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "account", + "nameLocation": "7481:7:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7473:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "value", + "nameLocation": "7498:5:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7490:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7490:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7472:32:1" + }, + "returnParameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "7514:0:1" + }, + "scope": 651, + "src": "7458:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 523, + "nodeType": "Block", + "src": "8040:150:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 499, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8073:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8065:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8054:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 513, + "nodeType": "IfStatement", + "src": "8050:89:1", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "8077:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8125:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8117:7:1", + "typeDescriptions": {} + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8117:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 505, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "8098:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8098:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "RevertStatement", + "src": "8091:37:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 515, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8156:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8173:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8165:7:1", + "typeDescriptions": {} + } + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8165:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 520, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "8148:35:1" + } + ] + }, + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "7672:307:1", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "7993:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "account", + "nameLocation": "8007:7:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "7999:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7999:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "value", + "nameLocation": "8024:5:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "8016:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7998:32:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [], + "src": "8040:0:1" + }, + "scope": 651, + "src": "7984:206:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 541, + "nodeType": "Block", + "src": "8800:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "8819:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 536, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "8826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "8835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8842:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 534, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "8810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8810:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "8810:37:1" + } + ] + }, + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "8196:525:1", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 542, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8735:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8752:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8744:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8744:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8767:7:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8759:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "value", + "nameLocation": "8784:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8776:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8776:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8743:47:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "8800:0:1" + }, + "scope": 651, + "src": "8726:128:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 601, + "nodeType": "Block", + "src": "9799:334:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 554, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "9813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9830:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9822:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9822:7:1", + "typeDescriptions": {} + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9813:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 568, + "nodeType": "IfStatement", + "src": "9809:89:1", + "trueBody": { + "id": 567, + "nodeType": "Block", + "src": "9834:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9876:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9876:7:1", + "typeDescriptions": {} + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9876:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 560, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9855:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9855:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 566, + "nodeType": "RevertStatement", + "src": "9848:39:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 569, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "9911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:1", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9911:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "IfStatement", + "src": "9907:90:1", + "trueBody": { + "id": 582, + "nodeType": "Block", + "src": "9934:63:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:1", + "typeDescriptions": {} + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 575, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "9955:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9955:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 581, + "nodeType": "RevertStatement", + "src": "9948:38:1" + } + ] + } + }, + { + "expression": { + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 584, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "10006:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 587, + "indexExpression": { + "id": 585, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10018:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10006:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 588, + "indexExpression": { + "id": 586, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10006:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10036:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10006:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "10006:35:1" + }, + { + "condition": { + "id": 592, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "10055:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 600, + "nodeType": "IfStatement", + "src": "10051:76:1", + "trueBody": { + "id": 599, + "nodeType": "Block", + "src": "10066:61:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 594, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10094:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 595, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 593, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10085:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "EmitStatement", + "src": "10080:36:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "8860:836:1", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9710:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9727:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9719:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9719:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9742:7:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9734:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9734:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "value", + "nameLocation": "9759:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9751:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "9771:9:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9766:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 550, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9766:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9718:63:1" + }, + "returnParameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [], + "src": "9799:0:1" + }, + "scope": 651, + "src": "9701:432:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "10504:388:1", + "statements": [ + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10522:16:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "10514:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10558:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "10541:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10541:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10514:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 619, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10580:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10605:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10600:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10614:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10600:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10580:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 648, + "nodeType": "IfStatement", + "src": "10576:310:1", + "trueBody": { + "id": 647, + "nodeType": "Block", + "src": "10619:267:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10637:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10656:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10637:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 636, + "nodeType": "IfStatement", + "src": "10633:130:1", + "trueBody": { + "id": 635, + "nodeType": "Block", + "src": "10663:100:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 630, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 631, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10742:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "10688:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10688:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "RevertStatement", + "src": "10681:67:1" + } + ] + } + }, + { + "id": 646, + "nodeType": "UncheckedBlock", + "src": "10776:100:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 638, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 639, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10820:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 640, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10829:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10848:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10855:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 637, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "10804:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10804:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "10804:57:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 603, + "nodeType": "StructuredDocumentation", + "src": "10139:271:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10424:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10448:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10440:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10440:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10463:7:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10455:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10455:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "value", + "nameLocation": "10480:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10472:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10439:47:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [], + "src": "10504:0:1" + }, + "scope": 651, + "src": "10415:477:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 652, + "src": "1106:9788:1", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "105:10790:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ] + }, + "id": 730, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "132:71:2", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 729, + "linearizedBaseContracts": [ + 729 + ], + "name": "IERC20", + "nameLocation": "214:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "227:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 663, + "name": "Transfer", + "nameLocation": "396:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "405:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "427:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "447:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:2" + }, + "src": "390:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 664, + "nodeType": "StructuredDocumentation", + "src": "468:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 672, + "name": "Approval", + "nameLocation": "627:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 666, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "636:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "659:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "684:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:2" + }, + "src": "621:78:2" + }, + { + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "705:65:2", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:2" + }, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 678, + "src": "821:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:2" + }, + "scope": 729, + "src": "775:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "836:71:2", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 729, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "986:213:2", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1222:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1234:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1267:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:2" + }, + "scope": 729, + "src": "1204:69:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1279:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1567:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1582:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:2" + }, + "returnParameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1622:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:2" + }, + "scope": 729, + "src": "1548:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 707, + "nodeType": "StructuredDocumentation", + "src": "1637:667:2", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 716, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2326:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2343:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:2" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2376:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 713, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:2" + }, + "scope": 729, + "src": "2309:73:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 717, + "nodeType": "StructuredDocumentation", + "src": "2388:297:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2712:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2726:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2738:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:2" + }, + "returnParameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2771:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 725, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:2" + }, + "scope": 729, + "src": "2690:87:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 730, + "src": "204:2575:2", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "106:2674:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 731, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 733, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 756, + "sourceUnit": 730, + "src": "151:37:3", + "symbolAliases": [ + { + "foreign": { + "id": 732, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "159:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 735, + "name": "IERC20", + "nameLocations": [ + "306:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "306:6:3" + }, + "id": 736, + "nodeType": "InheritanceSpecifier", + "src": "306:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "190:87:3", + "text": " @dev Interface for the optional metadata functions from the ERC-20 standard." + }, + "fullyImplemented": false, + "id": 755, + "linearizedBaseContracts": [ + 755, + 729 + ], + "name": "IERC20Metadata", + "nameLocation": "288:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 737, + "nodeType": "StructuredDocumentation", + "src": "319:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "387:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "417:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 739, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "417:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "416:15:3" + }, + "scope": 755, + "src": "378:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 743, + "nodeType": "StructuredDocumentation", + "src": "438:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "508:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [], + "src": "514:2:3" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "540:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "539:15:3" + }, + "scope": 755, + "src": "499:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 749, + "nodeType": "StructuredDocumentation", + "src": "561:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "640:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "648:2:3" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "674:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "673:7:3" + }, + "scope": 755, + "src": "631:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 756, + "src": "278:405:3", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "125:559:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 785 + ] + }, + "id": 786, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "127:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 785, + "linearizedBaseContracts": [ + 785 + ], + "name": "Context", + "nameLocation": "642:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "718:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 763, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 762, + "id": 765, + "nodeType": "Return", + "src": "728:17:4" + } + ] + }, + "id": 767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:4" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "709:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:4" + }, + "scope": 785, + "src": "656:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "825:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 771, + "id": 774, + "nodeType": "Return", + "src": "835:15:4" + } + ] + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:4" + }, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "809:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 769, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:4" + }, + "scope": 785, + "src": "758:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 783, + "nodeType": "Block", + "src": "935:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 780, + "id": 782, + "nodeType": "Return", + "src": "945:8:4" + } + ] + }, + "id": 784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:4" + }, + "returnParameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 784, + "src": "926:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:4" + }, + "scope": 785, + "src": "863:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 786, + "src": "624:338:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:4" + }, + "id": 4 + }, + "contracts/core/Factory.sol": { + "ast": { + "absolutePath": "contracts/core/Factory.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "IPool": [ + 2166 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory": [ + 1019 + ], + "PoolFactory__IdenticalAddress": [ + 791 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ], + "PoolFactory__NotSetter": [ + 797 + ], + "PoolFactory__PoolExists": [ + 795 + ], + "PoolFactory__ZeroAddress": [ + 793 + ] + }, + "id": 1020, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 787, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 788, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2167, + "src": "60:32:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Pool.sol", + "file": "./Pool.sol", + "id": 789, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2104, + "src": "94:20:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "4bea99d9", + "id": 791, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "124:29:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [], + "src": "153:2:5" + }, + "src": "118:38:5" + }, + { + "errorSelector": "74b959e9", + "id": 793, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "164:24:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:5" + }, + "src": "158:33:5" + }, + { + "errorSelector": "423d7935", + "id": 795, + "name": "PoolFactory__PoolExists", + "nameLocation": "199:23:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:5" + }, + "src": "193:32:5" + }, + { + "errorSelector": "e9e17318", + "id": 797, + "name": "PoolFactory__NotSetter", + "nameLocation": "233:22:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "255:2:5" + }, + "src": "227:31:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoolFactory", + "contractDependencies": [ + 2103 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1019, + "linearizedBaseContracts": [ + 1019 + ], + "name": "PoolFactory", + "nameLocation": "271:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "feeReceiver", + "nameLocation": "306:11:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "290:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "290:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 803, + "mutability": "mutable", + "name": "feeReceiverSetter", + "nameLocation": "357:17:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "324:50:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 802, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "324:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "343:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 809, + "mutability": "mutable", + "name": "getPairs", + "nameLocation": "439:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "383:64:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 808, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "383:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 807, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "410:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "402:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "421:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "allPairs", + "nameLocation": "472:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "454:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 811, + "nodeType": "ArrayTypeName", + "src": "454:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b", + "id": 820, + "name": "PoolCreated", + "nameLocation": "495:11:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": false, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "515:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "507:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "507:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": false, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "531:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "523:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "547:11:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "539:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "506:53:5" + }, + "src": "489:71:5" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "608:63:5", + "statements": [ + { + "expression": { + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "619:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 822, + "src": "637:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "619:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "619:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 830, + "nodeType": "ExpressionStatement", + "src": "619:44:5" + } + ] + }, + "id": 832, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "588:18:5", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "580:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "579:28:5" + }, + "returnParameters": { + "id": 824, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:0:5" + }, + "scope": 1019, + "src": "568:103:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "795:978:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 841, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "810:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 842, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "820:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "810:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 847, + "nodeType": "IfStatement", + "src": "806:60:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 844, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "835:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "835:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 846, + "nodeType": "RevertStatement", + "src": "828:38:5" + } + }, + { + "assignments": [ + 849, + 851 + ], + "declarations": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "token0", + "nameLocation": "886:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "878:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "878:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "token1", + "nameLocation": "902:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "894:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "894:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 862, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "912:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 853, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "921:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "912:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 858, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "976:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 859, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "984:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 860, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "975:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "912:79:5", + "trueExpression": { + "components": [ + { + "id": 855, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "944:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "952:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "877:114:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1089:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:5", + "typeDescriptions": {} + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1089:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 872, + "nodeType": "IfStatement", + "src": "1085:59:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 869, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "1118:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1118:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "RevertStatement", + "src": "1111:33:5" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "id": 873, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1159:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 875, + "indexExpression": { + "id": 874, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 877, + "indexExpression": { + "id": 876, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1195:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1187:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1187:7:5", + "typeDescriptions": {} + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1187:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1159:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 886, + "nodeType": "IfStatement", + "src": "1155:89:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 883, + "name": "PoolFactory__PoolExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "1219:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "RevertStatement", + "src": "1212:32:5" + } + }, + { + "assignments": [ + 888 + ], + "declarations": [ + { + "constant": false, + "id": 888, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "1270:8:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1257:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1257:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 893, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 890, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1286:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + ], + "id": 889, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1281:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1281:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103", + "typeString": "type(contract Pool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1292:12:5", + "memberName": "creationCode", + "nodeType": "MemberAccess", + "src": "1281:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1257:47:5" + }, + { + "assignments": [ + 895 + ], + "declarations": [ + { + "constant": false, + "id": 895, + "mutability": "mutable", + "name": "salt", + "nameLocation": "1323:4:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1315:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1315:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 903, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 899, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1357:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 900, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 897, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1340:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1344:12:5", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1340:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1340:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 896, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1330:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1330:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1315:58:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1427:93:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1442:67:5", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1465:1:5", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1472:8:5" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1482:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1468:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "1468:17:5" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1493:8:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1487:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "1487:15:5" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "1504:4:5" + } + ], + "functionName": { + "name": "create2", + "nodeType": "YulIdentifier", + "src": "1457:7:5" + }, + "nodeType": "YulFunctionCall", + "src": "1457:52:5" + }, + "variableNames": [ + { + "name": "poolAddress", + "nodeType": "YulIdentifier", + "src": "1442:11:5" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1472:8:5", + "valueSize": 1 + }, + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1493:8:5", + "valueSize": 1 + }, + { + "declaration": 839, + "isOffset": false, + "isSlot": false, + "src": "1442:11:5", + "valueSize": 1 + }, + { + "declaration": 895, + "isOffset": false, + "isSlot": false, + "src": "1504:4:5", + "valueSize": 1 + } + ], + "id": 904, + "nodeType": "InlineAssembly", + "src": "1418:102:5" + }, + { + "expression": { + "arguments": [ + { + "id": 909, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1555:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 910, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1563:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 906, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1537:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 905, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1532:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1550:4:5", + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 1683, + "src": "1532:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 912, + "nodeType": "ExpressionStatement", + "src": "1532:38:5" + }, + { + "expression": { + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 913, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1583:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 917, + "indexExpression": { + "id": 915, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1600:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1583:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 918, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1610:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1583:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 920, + "nodeType": "ExpressionStatement", + "src": "1583:38:5" + }, + { + "expression": { + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 921, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1632:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 924, + "indexExpression": { + "id": 922, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1641:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1632:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 925, + "indexExpression": { + "id": 923, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1649:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1632:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 926, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1659:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1632:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "1632:38:5" + }, + { + "expression": { + "arguments": [ + { + "id": 932, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1695:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 929, + "name": "allPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 812, + "src": "1681:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1690:4:5", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "1681:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1681:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1681:26:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 936, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1737:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 937, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1745:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 938, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1753:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 935, + "name": "PoolCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "1725:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1725:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 940, + "nodeType": "EmitStatement", + "src": "1720:45:5" + } + ] + }, + "functionSelector": "e3433615", + "id": 942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "688:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "717:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "709:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "742:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "734:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "734:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "698:57:5" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "782:11:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "774:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "773:21:5" + }, + "scope": 1019, + "src": "679:1094:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "1895:52:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 951, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1913:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 953, + "indexExpression": { + "id": 952, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "1922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 955, + "indexExpression": { + "id": 954, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1931:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 950, + "id": 956, + "nodeType": "Return", + "src": "1906:33:5" + } + ] + }, + "functionSelector": "4a70f02e", + "id": 958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "1790:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "1822:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1814:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1814:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "1848:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1840:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1840:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1803:59:5" + }, + "returnParameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1886:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1885:9:5" + }, + "scope": 1019, + "src": "1781:166:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 970, + "nodeType": "Block", + "src": "2010:73:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 963, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2021:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2021:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "2021:15:5" + }, + { + "expression": { + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 966, + "name": "feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "2049:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 967, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "2063:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2049:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 969, + "nodeType": "ExpressionStatement", + "src": "2049:26:5" + } + ] + }, + "functionSelector": "efdcd974", + "id": 971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeReceiver", + "nameLocation": "1964:14:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "1987:12:5", + "nodeType": "VariableDeclaration", + "scope": 971, + "src": "1979:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1979:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1978:22:5" + }, + "returnParameters": { + "id": 962, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:0:5" + }, + "scope": 1019, + "src": "1955:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 985, + "nodeType": "Block", + "src": "2160:91:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 976, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2171:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2171:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "2171:15:5" + }, + { + "expression": { + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 979, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2199:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 981, + "indexExpression": { + "id": 980, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "2217:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2199:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2239:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2199:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "2199:44:5" + } + ] + }, + "functionSelector": "5ac40ab3", + "id": 986, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addToFeeReceiverSetter", + "nameLocation": "2100:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2131:18:5", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "2123:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:28:5" + }, + "returnParameters": { + "id": 975, + "nodeType": "ParameterList", + "parameters": [], + "src": "2160:0:5" + }, + "scope": 1019, + "src": "2091:160:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "2333:92:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 991, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2344:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 993, + "nodeType": "ExpressionStatement", + "src": "2344:15:5" + }, + { + "expression": { + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 994, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2372:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 996, + "indexExpression": { + "id": 995, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 988, + "src": "2390:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2372:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2412:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2372:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "ExpressionStatement", + "src": "2372:45:5" + } + ] + }, + "functionSelector": "48397023", + "id": 1001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeFromFeeReceiverSetter", + "nameLocation": "2268:27:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 988, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2304:18:5", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "2296:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2296:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2295:28:5" + }, + "returnParameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2333:0:5" + }, + "scope": 1019, + "src": "2259:166:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "2472:121:5", + "statements": [ + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "ifSetter", + "nameLocation": "2488:8:5", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "2483:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1004, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2483:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1010, + "initialValue": { + "baseExpression": { + "id": 1006, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2499:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1009, + "indexExpression": { + "expression": { + "id": 1007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2517:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2521:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2517:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2499:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2483:45:5" + }, + { + "condition": { + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2543:9:5", + "subExpression": { + "id": 1011, + "name": "ifSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2544:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1016, + "nodeType": "IfStatement", + "src": "2539:46:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1013, + "name": "PoolFactory__NotSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "2561:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2561:24:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1015, + "nodeType": "RevertStatement", + "src": "2554:31:5" + } + } + ] + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkIfSetter", + "nameLocation": "2442:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1002, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:5" + }, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2472:0:5" + }, + "scope": 1019, + "src": "2433:160:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1020, + "src": "262:2334:5", + "usedErrors": [ + 791, + 793, + 795, + 797 + ], + "usedEvents": [ + 820 + ] + } + ], + "src": "33:2563:5" + }, + "id": 5 + }, + "contracts/core/LiquidityProvider.sol": { + "ast": { + "absolutePath": "contracts/core/LiquidityProvider.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "IERC20": [ + 729 + ], + "IFactory": [ + 2124 + ], + "IPool": [ + 2166 + ], + "IWEDU": [ + 2186 + ], + "LiquidityProvider": [ + 1537 + ], + "LiquidityProvider__EDUTransferFailed": [ + 1032 + ], + "LiquidityProvider__InsufficientAmount": [ + 1028 + ], + "LiquidityProvider__InsufficientOutputAmount": [ + 1030 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 1538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1021, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1022, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 730, + "src": "120:56:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "file": "./interfaces/IFactory.sol", + "id": 1023, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2125, + "src": "178:35:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 1024, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2167, + "src": "215:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "file": "./interfaces/IWedu.sol", + "id": 1025, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2187, + "src": "249:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/libraries/Library.sol", + "file": "./libraries/Library.sol", + "id": 1026, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2296, + "src": "283:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "d0368649", + "id": 1028, + "name": "LiquidityProvider__InsufficientAmount", + "nameLocation": "326:37:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [], + "src": "363:2:6" + }, + "src": "320:46:6" + }, + { + "errorSelector": "dec0fbbe", + "id": 1030, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nameLocation": "374:43:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:6" + }, + "src": "368:52:6" + }, + { + "errorSelector": "0221f34c", + "id": 1032, + "name": "LiquidityProvider__EDUTransferFailed", + "nameLocation": "428:36:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1031, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:6" + }, + "src": "422:45:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LiquidityProvider", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1537, + "linearizedBaseContracts": [ + 1537 + ], + "name": "LiquidityProvider", + "nameLocation": "480:17:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1034, + "mutability": "immutable", + "name": "factoryAddress", + "nameLocation": "531:14:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "505:40:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1036, + "mutability": "immutable", + "name": "WEDU", + "nameLocation": "578:4:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "552:30:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1051, + "nodeType": "Block", + "src": "643:74:6", + "statements": [ + { + "expression": { + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1043, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "654:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1044, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1038, + "src": "671:15:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:32:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "654:32:6" + }, + { + "expression": { + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1047, + "name": "WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1036, + "src": "697:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1048, + "name": "_WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "704:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "697:12:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "697:12:6" + } + ] + }, + "id": 1052, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1038, + "mutability": "mutable", + "name": "_factoryAddress", + "nameLocation": "611:15:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "603:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "mutability": "mutable", + "name": "_WEDU", + "nameLocation": "636:5:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "628:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "602:40:6" + }, + "returnParameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:6" + }, + "scope": 1537, + "src": "591:126:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1184, + "nodeType": "Block", + "src": "995:1414:6", + "statements": [ + { + "assignments": [ + 1072 + ], + "declarations": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "pair", + "nameLocation": "1014:4:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1006:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "arguments": [ + { + "id": 1077, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1074, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1021:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1046:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1021:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1006:71:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1108:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1100:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1100:7:6", + "typeDescriptions": {} + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1100:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1092:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "1088:97:6", + "trueBody": { + "expression": { + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1087, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1125:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1092, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1168:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1093, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1177:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1089, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1141:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1088, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1132:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1157:10:6", + "memberName": "createPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2123, + "src": "1132:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:60:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1125:60:6" + } + }, + { + "assignments": [ + 1099, + 1101 + ], + "declarations": [ + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "1207:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1199:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1199:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1101, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "1225:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1217:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1107, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1103, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1102, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "1237:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1249:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "1237:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1198:69:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1108, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1284:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1111, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1301:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1313:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1301:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:30:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1182, + "nodeType": "Block", + "src": "1416:986:6", + "statements": [ + { + "assignments": [ + 1125 + ], + "declarations": [ + { + "constant": false, + "id": 1125, + "mutability": "mutable", + "name": "optimalAmountOfTokenB", + "nameLocation": "1439:21:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1431:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1431:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1131, + "initialValue": { + "arguments": [ + { + "id": 1127, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1487:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1128, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1527:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1129, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1126, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1463:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1463:114:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:146:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1132, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1596:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1133, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1621:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1596:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1180, + "nodeType": "Block", + "src": "1938:453:6", + "statements": [ + { + "assignments": [ + 1152 + ], + "declarations": [ + { + "constant": false, + "id": 1152, + "mutability": "mutable", + "name": "amountAOptimal", + "nameLocation": "1965:14:6", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "1957:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1154, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2010:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1155, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "2054:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1156, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "2085:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1153, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1982:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:130:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1957:155:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2138:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1161, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "2156:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2138:39:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1159, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2131:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2131:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "ExpressionStatement", + "src": "2131:47:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1165, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2201:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1166, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "2218:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2201:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1171, + "nodeType": "IfStatement", + "src": "2197:99:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1168, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "2257:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2257:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1170, + "nodeType": "RevertStatement", + "src": "2250:46:6" + } + }, + { + "expression": { + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1172, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "2316:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1173, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "2325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1174, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2315:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1175, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2337:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1176, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:39:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2315:60:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "2315:60:6" + } + ] + }, + "id": 1181, + "nodeType": "IfStatement", + "src": "1592:799:6", + "trueBody": { + "id": 1150, + "nodeType": "Block", + "src": "1644:288:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1135, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1667:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1136, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1691:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1141, + "nodeType": "IfStatement", + "src": "1663:106:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1138, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "1730:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1730:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1140, + "nodeType": "RevertStatement", + "src": "1723:46:6" + } + }, + { + "expression": { + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1142, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1789:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1143, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1144, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1788:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1145, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1832:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1146, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1147, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1809:107:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1788:128:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1149, + "nodeType": "ExpressionStatement", + "src": "1788:128:6" + } + ] + } + } + ] + }, + "id": 1183, + "nodeType": "IfStatement", + "src": "1280:1122:6", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "1316:94:6", + "statements": [ + { + "expression": { + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1115, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1332:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1116, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1117, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1331:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1118, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1119, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1376:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1120, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1352:46:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1331:67:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "1331:67:6" + } + ] + } + } + ] + }, + "id": 1185, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLiquidity", + "nameLocation": "734:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "766:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "758:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1053, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "758:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1056, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "792:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "784:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1058, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "818:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "810:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "858:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "850:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "850:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "898:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "890:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "926:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "918:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "918:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "747:195:6" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "969:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "961:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "986:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "978:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "960:34:6" + }, + "scope": 1537, + "src": "725:1684:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "2703:487:6", + "statements": [ + { + "expression": { + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1206, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "2715:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1207, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "2724:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1208, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2714:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1210, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2763:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1211, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2784:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1212, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "2805:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1213, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2841:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1214, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1195, + "src": "2877:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1215, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2901:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1209, + "name": "_addLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "2735:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:186:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2714:207:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1218, + "nodeType": "ExpressionStatement", + "src": "2714:207:6" + }, + { + "assignments": [ + 1220 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "pair", + "nameLocation": "2940:4:6", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "2932:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2932:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2994:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1222, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2956:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1221, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "2947:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2972:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "2947:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2932:69:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1233, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3040:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3044:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3040:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3052:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1236, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "3058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1230, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "3019:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3027:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3012:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1238, + "nodeType": "ExpressionStatement", + "src": "3012:54:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3105:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3105:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1245, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3117:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1246, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "3123:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1240, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "3084:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1239, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3077:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3092:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3077:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "3077:54:6" + }, + { + "expression": { + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1249, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "3142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1254, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3171:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3171:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1251, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3160:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1250, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3154:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3166:4:6", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2140, + "src": "3154:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3142:40:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1258, + "nodeType": "ExpressionStatement", + "src": "3142:40:6" + } + ] + }, + "functionSelector": "3351733f", + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "2426:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1187, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "2457:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2449:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2449:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1189, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "2482:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2474:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "2507:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2499:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "2547:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2539:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "2587:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2579:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "2615:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2607:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2438:193:6" + }, + "returnParameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2658:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2650:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2650:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2675:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2667:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2667:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2692:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2684:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2684:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2649:53:6" + }, + "scope": 1537, + "src": "2417:773:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1349, + "nodeType": "Block", + "src": "4116:531:6", + "statements": [ + { + "body": { + "id": 1347, + "nodeType": "Block", + "src": "4166:474:6", + "statements": [ + { + "assignments": [ + 1286, + 1288 + ], + "declarations": [ + { + "constant": false, + "id": 1286, + "mutability": "mutable", + "name": "input", + "nameLocation": "4190:5:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4182:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4182:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "output", + "nameLocation": "4205:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4197:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4197:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1298, + "initialValue": { + "components": [ + { + "baseExpression": { + "id": 1289, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4216:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1291, + "indexExpression": { + "id": 1290, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4221:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4216:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1292, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4225:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1296, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4230:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4230:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4215:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4181:56:6" + }, + { + "assignments": [ + 1300, + null + ], + "declarations": [ + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "token0", + "nameLocation": "4261:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4253:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1306, + "initialValue": { + "arguments": [ + { + "id": 1303, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1304, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "4303:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1301, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "4273:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4285:10:6", + "memberName": "sortTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 2236, + "src": "4273:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", + "typeString": "function (address,address) pure returns (address,address)" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4273:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4252:58:6" + }, + { + "assignments": [ + 1308 + ], + "declarations": [ + { + "constant": false, + "id": 1308, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "4333:9:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4325:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1314, + "initialValue": { + "baseExpression": { + "id": 1309, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4345:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1313, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4353:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4357:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4345:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4325:34:6" + }, + { + "assignments": [ + 1316, + 1318 + ], + "declarations": [ + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "4383:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4375:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "4403:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4395:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1335, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1319, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4417:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1320, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "4426:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4417:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4504:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4496:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:6", + "typeDescriptions": {} + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4496:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1332, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4508:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1333, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4495:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 1334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4417:101:6", + "trueExpression": { + "components": [ + { + "id": 1322, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4453:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4472:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4464:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4464:7:6", + "typeDescriptions": {} + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4464:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1327, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4452:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4374:144:6" + }, + { + "documentation": "TODO: In case of multiple hops ", + "expression": { + "arguments": [ + { + "id": 1340, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4601:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 1341, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1343, + "indexExpression": { + "id": 1342, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4620:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4612:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1344, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1270, + "src": "4624:3:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1337, + "name": "_pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1268, + "src": "4589:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1336, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "4583:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4596:4:6", + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 2165, + "src": "4583:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address) external" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1346, + "nodeType": "ExpressionStatement", + "src": "4583:45:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1276, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4140:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1277, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4144:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4149:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4158:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4144:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4140:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1348, + "initializationExpression": { + "assignments": [ + 1274 + ], + "declarations": [ + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "i", + "nameLocation": "4137:1:6", + "nodeType": "VariableDeclaration", + "scope": 1348, + "src": "4132:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1273, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4132:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1275, + "nodeType": "VariableDeclarationStatement", + "src": "4132:6:6" + }, + "loopExpression": { + "expression": { + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4161:3:6", + "subExpression": { + "id": 1282, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4161:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "4161:3:6" + }, + "nodeType": "ForStatement", + "src": "4127:513:6" + } + ] + }, + "id": 1350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "3981:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4014:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "3997:24:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1262, + "nodeType": "ArrayTypeName", + "src": "3997:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1266, + "mutability": "mutable", + "name": "path", + "nameLocation": "4049:4:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4032:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4032:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1265, + "nodeType": "ArrayTypeName", + "src": "4032:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1268, + "mutability": "mutable", + "name": "_pair", + "nameLocation": "4072:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4064:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4064:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "_to", + "nameLocation": "4096:3:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4088:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3986:120:6" + }, + "returnParameters": { + "id": 1272, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:6" + }, + "scope": 1537, + "src": "3972:675:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1420, + "nodeType": "Block", + "src": "4899:392:6", + "statements": [ + { + "assignments": [ + 1365 + ], + "declarations": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "pair", + "nameLocation": "4918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "4910:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1377, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1370, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1372, + "indexExpression": { + "hexValue": "30", + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4964:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1373, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4973:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1375, + "indexExpression": { + "hexValue": "31", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4978:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4973:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1367, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "4934:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1366, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "4925:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4950:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "4925:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4910:71:6" + }, + { + "expression": { + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1378, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "4994:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1380, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1381, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "5024:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1382, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5034:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 1379, + "name": "getAmountsOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "5004:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5004:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4994:45:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1385, + "nodeType": "ExpressionStatement", + "src": "4994:45:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1386, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5054:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1391, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1387, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5062:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5070:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5062:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5062:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5054:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1392, + "name": "amountOutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "5084:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1397, + "nodeType": "IfStatement", + "src": "5050:113:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1394, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "5118:43:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5118:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1396, + "nodeType": "RevertStatement", + "src": "5111:52:6" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5205:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5209:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5205:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5217:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1407, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5223:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1409, + "indexExpression": { + "hexValue": "30", + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5223:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1399, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5183:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1401, + "indexExpression": { + "hexValue": "30", + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5183:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1398, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "5176:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5192:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "5176:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "5176:58:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1413, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5251:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1414, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5260:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 1415, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5266:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5272:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5276:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5272:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "5245:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[] memory,address[] memory,address,address)" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "5245:38:6" + } + ] + }, + "functionSelector": "86818f26", + "id": 1421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "4664:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4704:8:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4699:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1351, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4699:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1354, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4728:12:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4723:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4723:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "path", + "nameLocation": "4770:4:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4751:23:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4751:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1356, + "nodeType": "ArrayTypeName", + "src": "4751:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4688:93:6" + }, + "returnParameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4875:7:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4861:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4861:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1361, + "nodeType": "ArrayTypeName", + "src": "4861:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4817:76:6" + }, + "scope": 1537, + "src": "4655:636:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1459, + "nodeType": "Block", + "src": "5429:265:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1433, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5448:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5448:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5461:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + }, + "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + } + ], + "id": 1432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5440:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5440:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "5440:65:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1440, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5538:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5549:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5538:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1443, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5565:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5554:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5538:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5581:42:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 1439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5516:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5516:118:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1449, + "nodeType": "ExpressionStatement", + "src": "5516:118:6" + }, + { + "expression": { + "id": 1457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1450, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1451, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1452, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5666:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5656:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5655:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1455, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5678:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5655:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5645:41:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1458, + "nodeType": "ExpressionStatement", + "src": "5645:41:6" + } + ] + }, + "id": 1460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "5308:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1423, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "5329:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5324:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5324:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1425, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "5352:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5347:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1424, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1427, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "5376:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5371:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1426, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5371:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5313:78:6" + }, + "returnParameters": { + "id": 1431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1430, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "5420:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5415:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:14:6" + }, + "scope": 1537, + "src": "5299:395:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1535, + "nodeType": "Block", + "src": "5923:453:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1474, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "5942:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5947:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5942:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "32", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5942:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "id": 1478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5960:32:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + }, + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + } + ], + "id": 1473, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:59:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "ExpressionStatement", + "src": "5934:59:6" + }, + { + "expression": { + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1481, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6004:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1485, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6030:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6025:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6014:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1483, + "nodeType": "ArrayTypeName", + "src": "6018:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6014:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "6004:33:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1489, + "nodeType": "ExpressionStatement", + "src": "6004:33:6" + }, + { + "expression": { + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1490, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1492, + "indexExpression": { + "hexValue": "30", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6048:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1493, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "6061:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6048:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "6048:21:6" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6119:250:6", + "statements": [ + { + "assignments": [ + 1509, + 1511 + ], + "declarations": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "6140:9:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6135:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6135:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1511, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "6156:10:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6151:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1510, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6151:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1513, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "6176:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1512, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "6170:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6182:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "6170:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6134:66:6" + }, + { + "expression": { + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1518, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6215:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1522, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6223:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6227:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6223:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6215:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 1525, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6275:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1527, + "indexExpression": { + "id": 1526, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6283:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6275:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1529, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1511, + "src": "6332:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1523, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "6232:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6244:12:6", + "memberName": "getAmountOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "6232:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6232:125:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6215:142:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6215:142:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6093:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1500, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6097:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6102:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6097:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6111:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6097:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6093:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1534, + "initializationExpression": { + "assignments": [ + 1497 + ], + "declarations": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "i", + "nameLocation": "6090:1:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6085:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6085:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1498, + "nodeType": "VariableDeclarationStatement", + "src": "6085:6:6" + }, + "loopExpression": { + "expression": { + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6114:3:6", + "subExpression": { + "id": 1505, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6114:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "6114:3:6" + }, + "nodeType": "ForStatement", + "src": "6080:289:6" + } + ] + }, + "functionSelector": "bb7b9c76", + "id": 1536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "5779:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "pair", + "nameLocation": "5811:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5803:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5803:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "5831:8:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5826:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1467, + "mutability": "mutable", + "name": "path", + "nameLocation": "5867:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5850:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5850:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1466, + "nodeType": "ArrayTypeName", + "src": "5850:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5792:86:6" + }, + "returnParameters": { + "id": 1472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1471, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "5914:7:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5900:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5900:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1470, + "nodeType": "ArrayTypeName", + "src": "5900:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5899:23:6" + }, + "scope": 1537, + "src": "5770:606:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1538, + "src": "471:5908:6", + "usedErrors": [ + 1028, + 1030, + 2190, + 2192 + ], + "usedEvents": [] + } + ], + "src": "33:6346:6" + }, + "id": 6 + }, + "contracts/core/Math.sol": { + "ast": { + "absolutePath": "contracts/core/Math.sol", + "exportedSymbols": { + "Math": [ + 1613 + ] + }, + "id": 1614, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1539, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613 + ], + "name": "Math", + "nameLocation": "123:4:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1557, + "nodeType": "Block", + "src": "195:36:7", + "statements": [ + { + "expression": { + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1548, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "206:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1549, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "210:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1550, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "214:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "210:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1553, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "222:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "210:13:7", + "trueExpression": { + "id": 1552, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "218:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "206:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1556, + "nodeType": "ExpressionStatement", + "src": "206:17:7" + } + ] + }, + "id": 1558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "144:3:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1541, + "mutability": "mutable", + "name": "x", + "nameLocation": "153:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "148:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "148:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1543, + "mutability": "mutable", + "name": "y", + "nameLocation": "161:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "156:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "156:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "147:16:7" + }, + "returnParameters": { + "id": 1547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "z", + "nameLocation": "192:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "187:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "187:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "186:8:7" + }, + "scope": 1613, + "src": "135:96:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "402:250:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1565, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "417:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "33", + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "421:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "417:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1601, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "605:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "610:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "605:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1609, + "nodeType": "IfStatement", + "src": "601:44:7", + "trueBody": { + "id": 1608, + "nodeType": "Block", + "src": "613:32:7", + "statements": [ + { + "expression": { + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1604, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "628:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "632:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "628:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "628:5:7" + } + ] + } + }, + "id": 1610, + "nodeType": "IfStatement", + "src": "413:232:7", + "trueBody": { + "id": 1600, + "nodeType": "Block", + "src": "424:171:7", + "statements": [ + { + "expression": { + "id": 1570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1568, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "439:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1569, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "443:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "439:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1571, + "nodeType": "ExpressionStatement", + "src": "439:5:7" + }, + { + "assignments": [ + 1573 + ], + "declarations": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "x", + "nameLocation": "464:1:7", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "459:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "459:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1579, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1574, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "468:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "468:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "468:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "459:18:7" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "506:78:7", + "statements": [ + { + "expression": { + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1583, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "525:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1584, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "529:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "525:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "525:5:7" + }, + { + "expression": { + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1587, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "549:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1588, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "554:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1589, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "558:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "562:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1593, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "553:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "553:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1597, + "nodeType": "ExpressionStatement", + "src": "549:19:7" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1580, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "499:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1581, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "503:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "499:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1599, + "nodeType": "WhileStatement", + "src": "492:92:7" + } + ] + } + } + ] + }, + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "358:4:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "y", + "nameLocation": "368:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "363:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "363:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "362:8:7" + }, + "returnParameters": { + "id": 1564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1563, + "mutability": "mutable", + "name": "z", + "nameLocation": "399:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "394:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "394:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "393:8:7" + }, + "scope": 1613, + "src": "349:303:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1614, + "src": "115:540:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:622:7" + }, + "id": 7 + }, + "contracts/core/Pool.sol": { + "ast": { + "absolutePath": "contracts/core/Pool.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ] + }, + "id": 2104, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1616, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 652, + "src": "60:55:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1617, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 730, + "src": "117:56:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Math.sol", + "file": "./Math.sol", + "id": 1618, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 1614, + "src": "175:20:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "0c18a1fc", + "id": 1620, + "name": "PoolFactory__NotOwner", + "nameLocation": "205:21:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:2:8" + }, + "src": "199:30:8" + }, + { + "errorSelector": "24217e51", + "id": 1622, + "name": "PoolFactory__InsufficientLiquidity", + "nameLocation": "237:34:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [], + "src": "271:2:8" + }, + "src": "231:43:8" + }, + { + "errorSelector": "5d125c46", + "id": 1624, + "name": "PoolFactory__InsufficientFunds", + "nameLocation": "282:30:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "src": "276:39:8" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1625, + "name": "ERC20", + "nameLocations": [ + "336:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "336:5:8" + }, + "id": 1626, + "nodeType": "InheritanceSpecifier", + "src": "336:5:8" + } + ], + "canonicalName": "Pool", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2103, + "linearizedBaseContracts": [ + 2103, + 651, + 41, + 755, + 729, + 785 + ], + "name": "Pool", + "nameLocation": "328:4:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1629, + "libraryName": { + "id": 1627, + "name": "Math", + "nameLocations": [ + "355:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1613, + "src": "355:4:8" + }, + "nodeType": "UsingForDirective", + "src": "349:23:8", + "typeName": { + "id": 1628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1631, + "mutability": "immutable", + "name": "factory", + "nameLocation": "406:7:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "380:33:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "380:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "436:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "420:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "465:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "449:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 1640, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "504:17:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "480:51:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "480:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "524:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "33", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "556:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "540:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "540:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1644, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "587:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "571:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "totalLpShares", + "nameLocation": "620:13:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "604:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1658, + "nodeType": "Block", + "src": "687:39:8", + "statements": [ + { + "expression": { + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1653, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "698:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1654, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "708:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "712:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "708:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "698:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1657, + "nodeType": "ExpressionStatement", + "src": "698:20:8" + } + ] + }, + "id": 1659, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4c6971756964697479546f6b656e73", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "662:17:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0", + "typeString": "literal_string \"LiquidityTokens\"" + }, + "value": "LiquidityTokens" + }, + { + "hexValue": "4c50", + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3", + "typeString": "literal_string \"LP\"" + }, + "value": "LP" + } + ], + "id": 1651, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1648, + "name": "ERC20", + "nameLocations": [ + "656:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "656:5:8" + }, + "nodeType": "ModifierInvocation", + "src": "656:30:8" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "653:2:8" + }, + "returnParameters": { + "id": 1652, + "nodeType": "ParameterList", + "parameters": [], + "src": "687:0:8" + }, + "scope": 2103, + "src": "642:84:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1682, + "nodeType": "Block", + "src": "791:132:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1666, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "806:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1667, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "817:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "821:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "817:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "806:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "802:57:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1670, + "name": "PoolFactory__NotOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "836:21:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "836:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1672, + "nodeType": "RevertStatement", + "src": "829:30:8" + } + }, + { + "expression": { + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1674, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "872:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1675, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "881:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "872:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1677, + "nodeType": "ExpressionStatement", + "src": "872:16:8" + }, + { + "expression": { + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1678, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1679, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "908:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "899:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1681, + "nodeType": "ExpressionStatement", + "src": "899:16:8" + } + ] + }, + "functionSelector": "f09a4016", + "id": 1683, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "743:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "756:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "748:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "773:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "765:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "747:34:8" + }, + "returnParameters": { + "id": 1665, + "nodeType": "ParameterList", + "parameters": [], + "src": "791:0:8" + }, + "scope": 2103, + "src": "734:189:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "994:70:8", + "statements": [ + { + "expression": { + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1690, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "1005:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1691, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1016:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1005:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "1005:20:8" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1694, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "1036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "1047:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1036:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1036:20:8" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "940:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "956:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "948:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "948:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "967:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "967:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "947:38:8" + }, + "returnParameters": { + "id": 1689, + "nodeType": "ParameterList", + "parameters": [], + "src": "994:0:8" + }, + "scope": 2103, + "src": "931:133:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "1136:1104:8", + "statements": [ + { + "assignments": [ + 1707, + 1709 + ], + "declarations": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_reserveA", + "nameLocation": "1156:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1148:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1148:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1709, + "mutability": "mutable", + "name": "_reserveB", + "nameLocation": "1175:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1167:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1712, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1710, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "1188:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1188:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1147:59:8" + }, + { + "assignments": [ + 1714 + ], + "declarations": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "1225:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1217:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1721, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1270:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1262:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1262:7:8", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1262:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1716, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "1244:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1715, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1237:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1252:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1237:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1217:59:8" + }, + { + "assignments": [ + 1726 + ], + "declarations": [ + { + "constant": false, + "id": 1726, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "1295:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1287:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1736, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1733, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1340:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:8", + "typeDescriptions": {} + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1332:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1728, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "1314:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1727, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1307:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1322:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1307:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1287:59:8" + }, + { + "assignments": [ + 1738 + ], + "declarations": [ + { + "constant": false, + "id": 1738, + "mutability": "mutable", + "name": "depositOfTokenA", + "nameLocation": "1365:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1357:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1742, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1739, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "1383:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1740, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1395:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1383:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1357:47:8" + }, + { + "assignments": [ + 1744 + ], + "declarations": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "depositOfTokenB", + "nameLocation": "1423:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1415:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1415:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1748, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1745, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "1441:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1746, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1453:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1441:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1415:47:8" + }, + { + "assignments": [ + 1750 + ], + "declarations": [ + { + "constant": false, + "id": 1750, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1483:12:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1475:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1475:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1753, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1751, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "1498:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1498:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:36:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1754, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1526:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1542:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1526:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1796, + "nodeType": "Block", + "src": "1828:188:8", + "statements": [ + { + "expression": { + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1778, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1843:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1781, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1883:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1782, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1883:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1882:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1785, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1917:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1882:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1787, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1946:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1788, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1964:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1946:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1790, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1945:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1791, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1980:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1945:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1779, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1855:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1860:3:8", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 1558, + "src": "1855:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:149:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1843:161:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1795, + "nodeType": "ExpressionStatement", + "src": "1843:161:8" + } + ] + }, + "id": 1797, + "nodeType": "IfStatement", + "src": "1522:494:8", + "trueBody": { + "id": 1777, + "nodeType": "Block", + "src": "1545:277:8", + "statements": [ + { + "expression": { + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1757, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1560:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1760, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1599:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1761, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1617:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1599:33:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1758, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1589:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1594:4:8", + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1612, + "src": "1589:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "id": 1764, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1654:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1653:19:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1589:83:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1560:112:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "1560:112:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "31", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1693:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1693:7:8", + "typeDescriptions": {} + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1693:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1774, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1705:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1769, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "1687:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1687:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1776, + "nodeType": "ExpressionStatement", + "src": "1687:36:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1798, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2030:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2043:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2030:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1804, + "nodeType": "IfStatement", + "src": "2026:63:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1801, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "2053:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2053:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1803, + "nodeType": "RevertStatement", + "src": "2046:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "id": 1806, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "2106:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1807, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2111:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1805, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "2100:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2100:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1809, + "nodeType": "ExpressionStatement", + "src": "2100:21:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1811, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "2140:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1812, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "2151:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "2132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1814, + "nodeType": "ExpressionStatement", + "src": "2132:29:8" + } + ] + }, + "functionSelector": "6a627842", + "id": 1816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "1081:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1094:3:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1086:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1086:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1085:13:8" + }, + "returnParameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1125:9:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1117:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1116:19:8" + }, + "scope": 2103, + "src": "1072:1168:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1957, + "nodeType": "Block", + "src": "2368:1169:8", + "statements": [ + { + "assignments": [ + 1826, + 1828 + ], + "declarations": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "2388:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2380:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2380:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1828, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "2407:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2399:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1831, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1829, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "2420:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2379:59:8" + }, + { + "assignments": [ + 1833 + ], + "declarations": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "2472:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2464:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2464:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "id": 1834, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "2482:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2464:24:8" + }, + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "2522:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2514:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1839, + "initialValue": { + "id": 1838, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "2532:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2514:24:8" + }, + { + "assignments": [ + 1841 + ], + "declarations": [ + { + "constant": false, + "id": 1841, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "2569:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2564:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1851, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2614:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2606:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2606:7:8", + "typeDescriptions": {} + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1843, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "2587:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1842, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2580:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2596:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2580:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:56:8" + }, + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "2636:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2631:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2631:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1863, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1860, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2673:7:8", + "typeDescriptions": {} + } + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2673:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1855, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "2654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1854, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2647:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2663:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2647:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2631:56:8" + }, + { + "assignments": [ + 1865 + ], + "declarations": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2703:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2698:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2698:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1869, + "initialValue": { + "arguments": [ + { + "id": 1867, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "2725:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1866, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2715:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2715:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:30:8" + }, + { + "assignments": [ + 1871 + ], + "declarations": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "2749:12:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2741:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2741:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1874, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1872, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "2764:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2764:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2741:36:8" + }, + { + "expression": { + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1875, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "2866:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1876, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2877:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1877, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "2889:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2877:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2876:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1880, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "2901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2876:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1883, + "nodeType": "ExpressionStatement", + "src": "2866:47:8" + }, + { + "expression": { + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1884, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "2972:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1885, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2983:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1886, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2995:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2983:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1888, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2982:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1889, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3007:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2982:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2972:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1892, + "nodeType": "ExpressionStatement", + "src": "2972:47:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1893, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3082:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3093:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3082:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1896, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3098:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3109:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3098:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3082:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1903, + "nodeType": "IfStatement", + "src": "3078:90:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1900, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3132:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3132:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1902, + "nodeType": "RevertStatement", + "src": "3125:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1907, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3193:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3185:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3185:7:8", + "typeDescriptions": {} + } + }, + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3185:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1909, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3200:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1904, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3179:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3179:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "3179:31:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3246:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1917, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3250:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1913, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1912, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3221:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3237:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3221:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "3221:37:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1924, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3294:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1925, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3298:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1921, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3276:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1920, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3269:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3285:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3269:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "3269:37:8" + }, + { + "expression": { + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1928, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3317:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1935, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3362:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3354:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3354:7:8", + "typeDescriptions": {} + } + }, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3354:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1930, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1929, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3328:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3344:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3328:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3317:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "3317:51:8" + }, + { + "expression": { + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1940, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3379:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1947, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3424:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3416:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3416:7:8", + "typeDescriptions": {} + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1942, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3397:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1941, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3390:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3390:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3379:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "3379:51:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1953, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3451:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1954, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3461:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1952, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "3443:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3443:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1956, + "nodeType": "ExpressionStatement", + "src": "3443:27:8" + } + ] + }, + "functionSelector": "74a0f94b", + "id": 1958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "2270:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "to", + "nameLocation": "2306:2:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2298:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2298:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2287:28:8" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2342:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2334:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2359:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2351:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2351:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:34:8" + }, + "scope": 2103, + "src": "2261:1276:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2064, + "nodeType": "Block", + "src": "3680:778:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1967, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3695:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3695:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1970, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3714:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3714:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3695:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1977, + "nodeType": "IfStatement", + "src": "3691:92:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1974, + "name": "PoolFactory__InsufficientFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1624, + "src": "3751:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3751:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "RevertStatement", + "src": "3744:39:8" + } + }, + { + "assignments": [ + 1979, + 1981 + ], + "declarations": [ + { + "constant": false, + "id": 1979, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "3803:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3795:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "3822:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3814:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3814:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1982, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "3835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3835:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3794:59:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1985, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3868:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1986, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1979, + "src": "3881:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1988, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3894:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1989, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "3907:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3894:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3868:48:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1995, + "nodeType": "IfStatement", + "src": "3864:110:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1992, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3938:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3938:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1994, + "nodeType": "RevertStatement", + "src": "3931:43:8" + } + }, + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "3993:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1998, + "nodeType": "VariableDeclarationStatement", + "src": "3985:16:8" + }, + { + "assignments": [ + 2000 + ], + "declarations": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "4020:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "4012:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4012:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2001, + "nodeType": "VariableDeclarationStatement", + "src": "4012:16:8" + }, + { + "id": 2058, + "nodeType": "Block", + "src": "4039:372:8", + "statements": [ + { + "assignments": [ + 2003 + ], + "declarations": [ + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "4062:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4054:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2005, + "initialValue": { + "id": 2004, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4072:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4054:24:8" + }, + { + "assignments": [ + 2007 + ], + "declarations": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "4101:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4093:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4093:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2009, + "initialValue": { + "id": 2008, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4111:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:24:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2010, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4136:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4149:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4136:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2021, + "nodeType": "IfStatement", + "src": "4132:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2017, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4177:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2018, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4181:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2014, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4159:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2013, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4152:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4168:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4152:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2020, + "nodeType": "ExpressionStatement", + "src": "4152:40:8" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2022, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4211:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4224:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4211:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2033, + "nodeType": "IfStatement", + "src": "4207:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2029, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4252:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2030, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4256:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2026, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4234:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2025, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4227:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4243:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4227:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2032, + "nodeType": "ExpressionStatement", + "src": "4227:40:8" + } + }, + { + "expression": { + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2034, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4282:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2041, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4327:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4319:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4319:7:8", + "typeDescriptions": {} + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2036, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4300:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2035, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4293:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4309:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4293:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4282:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2045, + "nodeType": "ExpressionStatement", + "src": "4282:51:8" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2046, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4348:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2053, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4393:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4385:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4385:7:8", + "typeDescriptions": {} + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2048, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4366:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2047, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4359:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4375:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4359:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4348:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "4348:51:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "id": 2060, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4431:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2061, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4441:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2059, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4423:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4423:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2063, + "nodeType": "ExpressionStatement", + "src": "4423:27:8" + } + ] + }, + "functionSelector": "6d9a640a", + "id": 2065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "3554:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1960, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "3577:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3569:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3569:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1962, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "3606:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3598:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3598:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "to", + "nameLocation": "3635:2:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3627:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3627:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3558:112:8" + }, + "returnParameters": { + "id": 1966, + "nodeType": "ParameterList", + "parameters": [], + "src": "3680:0:8" + }, + "scope": 2103, + "src": "3545:913:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2076, + "nodeType": "Block", + "src": "4533:46:8", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2072, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "4552:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2073, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "4562:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4551:20:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2071, + "id": 2075, + "nodeType": "Return", + "src": "4544:27:8" + } + ] + }, + "functionSelector": "b9cf5005", + "id": 2077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "4475:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [], + "src": "4491:2:8" + }, + "returnParameters": { + "id": 2071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2068, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4515:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4515:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4524:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4514:18:8" + }, + "scope": 2103, + "src": "4466:113:8", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2101, + "nodeType": "Block", + "src": "4653:145:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2087, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4719:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4711:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4711:7:8", + "typeDescriptions": {} + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4711:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2082, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4693:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2081, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4686:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4701:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4686:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4773:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4765:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4765:7:8", + "typeDescriptions": {} + } + }, + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4765:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2091, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4747:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4740:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4755:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4740:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2080, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4664:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4664:126:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2100, + "nodeType": "ExpressionStatement", + "src": "4664:126:8" + } + ] + }, + "functionSelector": "fff6cae9", + "id": 2102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "4637:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [], + "src": "4641:2:8" + }, + "returnParameters": { + "id": 2079, + "nodeType": "ParameterList", + "parameters": [], + "src": "4653:0:8" + }, + "scope": 2103, + "src": "4628:170:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2104, + "src": "319:4482:8", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40, + 1620, + 1622, + 1624 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:4768:8" + }, + "id": 8 + }, + "contracts/core/interfaces/IFactory.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "exportedSymbols": { + "IFactory": [ + 2124 + ] + }, + "id": 2125, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2105, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IFactory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2124, + "linearizedBaseContracts": [ + 2124 + ], + "name": "IFactory", + "nameLocation": "70:8:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4a70f02e", + "id": 2114, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "95:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "127:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "119:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "144:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "108:57:9" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "184:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "184:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "183:9:9" + }, + "scope": 2124, + "src": "86:107:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e3433615", + "id": 2123, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "210:10:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "239:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "231:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "264:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "256:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "220:57:9" + }, + "returnParameters": { + "id": 2122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2121, + "mutability": "mutable", + "name": "poolPair", + "nameLocation": "304:8:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "296:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "295:18:9" + }, + "scope": 2124, + "src": "201:113:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2125, + "src": "60:257:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:284:9" + }, + "id": 9 + }, + "contracts/core/interfaces/IPool.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "exportedSymbols": { + "IPool": [ + 2166 + ] + }, + "id": 2167, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2126, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2166, + "linearizedBaseContracts": [ + 2166 + ], + "name": "IPool", + "nameLocation": "70:5:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "f09a4016", + "id": 2133, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "189:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2128, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "202:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "194:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "194:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "219:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "211:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "193:34:10" + }, + "returnParameters": { + "id": 2132, + "nodeType": "ParameterList", + "parameters": [], + "src": "236:0:10" + }, + "scope": 2166, + "src": "180:57:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 2140, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "254:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2135, + "mutability": "mutable", + "name": "_to", + "nameLocation": "267:3:10", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "259:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "259:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "258:13:10" + }, + "returnParameters": { + "id": 2139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "290:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "290:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "289:9:10" + }, + "scope": 2166, + "src": "245:54:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "74a0f94b", + "id": 2149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "316:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "to", + "nameLocation": "352:2:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "344:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "333:28:10" + }, + "returnParameters": { + "id": 2148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "388:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "380:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2147, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "405:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "397:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "397:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:34:10" + }, + "scope": 2166, + "src": "307:107:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b9cf5005", + "id": 2156, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "431:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:10" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2152, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "473:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "482:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:18:10" + }, + "scope": 2166, + "src": "422:69:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6d9a640a", + "id": 2165, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "508:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "531:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "523:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2160, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "560:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "552:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "552:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2162, + "mutability": "mutable", + "name": "to", + "nameLocation": "589:2:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "581:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "581:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "512:112:10" + }, + "returnParameters": { + "id": 2164, + "nodeType": "ParameterList", + "parameters": [], + "src": "633:0:10" + }, + "scope": 2166, + "src": "499:135:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2167, + "src": "60:577:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:604:10" + }, + "id": 10 + }, + "contracts/core/interfaces/IWedu.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "exportedSymbols": { + "IWEDU": [ + 2186 + ] + }, + "id": 2187, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2168, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IWEDU", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2186, + "linearizedBaseContracts": [ + 2186 + ], + "name": "IWEDU", + "nameLocation": "70:5:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 2171, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "92:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [], + "src": "99:2:11" + }, + "returnParameters": { + "id": 2170, + "nodeType": "ParameterList", + "parameters": [], + "src": "118:0:11" + }, + "scope": 2186, + "src": "83:36:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 2180, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "136:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2173, + "mutability": "mutable", + "name": "to", + "nameLocation": "153:2:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "145:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2175, + "mutability": "mutable", + "name": "value", + "nameLocation": "162:5:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "157:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2174, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "157:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "144:24:11" + }, + "returnParameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "187:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2177, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "187:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "186:6:11" + }, + "scope": 2186, + "src": "127:66:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e1a7d4d", + "id": 2185, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "210:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2185, + "src": "219:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "219:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:6:11" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [], + "src": "233:0:11" + }, + "scope": 2186, + "src": "201:33:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2187, + "src": "60:177:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:204:11" + }, + "id": 11 + }, + "contracts/core/libraries/Library.sol": { + "ast": { + "absolutePath": "contracts/core/libraries/Library.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 2296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2188, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:12" + }, + { + "errorSelector": "4bea99d9", + "id": 2190, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "66:29:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "95:2:12" + }, + "src": "60:38:12" + }, + { + "errorSelector": "74b959e9", + "id": 2192, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "106:24:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:12" + }, + "src": "100:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DefiLibrary", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2295, + "linearizedBaseContracts": [ + 2295 + ], + "name": "DefiLibrary", + "nameLocation": "145:11:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2235, + "nodeType": "Block", + "src": "397:341:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2203, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "412:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2204, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "422:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2209, + "nodeType": "IfStatement", + "src": "408:60:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2206, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "437:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "437:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2208, + "nodeType": "RevertStatement", + "src": "430:38:12" + } + }, + { + "expression": { + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 2210, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "480:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2211, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2201, + "src": "488:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2212, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "479:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2213, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "498:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2214, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "507:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "498:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 2219, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "562:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2220, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "570:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "561:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "498:79:12", + "trueExpression": { + "components": [ + { + "id": 2216, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "530:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2217, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "538:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2218, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "529:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "src": "479:98:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "479:98:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2225, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "675:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "685:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:12", + "typeDescriptions": {} + } + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "685:10:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "675:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2234, + "nodeType": "IfStatement", + "src": "671:59:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2192, + "src": "704:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "697:33:12" + } + } + ] + }, + "id": 2236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sortTokens", + "nameLocation": "274:10:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "303:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "295:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "328:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "320:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "284:57:12" + }, + "returnParameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "token0", + "nameLocation": "373:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "365:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "token1", + "nameLocation": "389:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "381:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2200, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "364:32:12" + }, + "scope": 2295, + "src": "265:473:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2293, + "nodeType": "Block", + "src": "1077:437:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2248, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1096:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1096:12:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:45:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 2247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1088:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1088:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2253, + "nodeType": "ExpressionStatement", + "src": "1088:68:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2255, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1189:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1189:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2258, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1206:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1189:31:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:42:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 2254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1167:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1167:121:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2264, + "nodeType": "ExpressionStatement", + "src": "1167:121:12" + }, + { + "assignments": [ + 2266 + ], + "declarations": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "amountInWithFee", + "nameLocation": "1304:15:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1299:20:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1299:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1322:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "393937", + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_997_by_1", + "typeString": "int_const 997" + }, + "value": "997" + }, + "src": "1322:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1299:37:12" + }, + { + "assignments": [ + 2272 + ], + "declarations": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "numerator", + "nameLocation": "1352:9:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1347:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1347:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2276, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2273, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1364:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2274, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1382:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1364:28:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1347:45:12" + }, + { + "assignments": [ + 2278 + ], + "declarations": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1408:11:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1403:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2286, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2279, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1423:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31303030", + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1435:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "1423:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1422:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "id": 2283, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1444:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2284, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1443:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1422:38:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1403:57:12" + }, + { + "expression": { + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2287, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "1471:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2288, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1483:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2289, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2278, + "src": "1495:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:23:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1471:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2292, + "nodeType": "ExpressionStatement", + "src": "1471:35:12" + } + ] + }, + "id": 2294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "943:12:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "971:8:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "966:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "966:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "995:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "990:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "990:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "1020:10:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1015:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1015:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "955:82:12" + }, + "returnParameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "1066:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1061:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:16:12" + }, + "scope": 2295, + "src": "934:580:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2296, + "src": "137:1380:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:1484:12" + }, + "id": 12 + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol", + "exportedSymbols": { + "AppleToken": [ + 2322 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2323, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2298, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2323, + "sourceUnit": 652, + "src": "61:55:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2299, + "name": "ERC20", + "nameLocations": [ + "143:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "143:5:13" + }, + "id": 2300, + "nodeType": "InheritanceSpecifier", + "src": "143:5:13" + } + ], + "canonicalName": "AppleToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2322, + "linearizedBaseContracts": [ + 2322, + 651, + 41, + 755, + 729, + 785 + ], + "name": "AppleToken", + "nameLocation": "129:10:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2307, + "nodeType": "Block", + "src": "192:2:13", + "statements": [] + }, + "id": 2308, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4170706c65", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1", + "typeString": "literal_string \"Apple\"" + }, + "value": "Apple" + }, + { + "hexValue": "415054", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:5:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1", + "typeString": "literal_string \"APT\"" + }, + "value": "APT" + } + ], + "id": 2305, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2302, + "name": "ERC20", + "nameLocations": [ + "170:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "170:5:13" + }, + "nodeType": "ModifierInvocation", + "src": "170:21:13" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "167:2:13" + }, + "returnParameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:0:13" + }, + "scope": 2322, + "src": "156:38:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2320, + "nodeType": "Block", + "src": "252:37:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2316, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "269:3:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2317, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "274:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2315, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "263:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "263:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2319, + "nodeType": "ExpressionStatement", + "src": "263:18:13" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "211:4:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "_to", + "nameLocation": "224:3:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "216:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "216:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2312, + "mutability": "mutable", + "name": "amount", + "nameLocation": "237:6:13", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "229:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "229:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "215:29:13" + }, + "returnParameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [], + "src": "252:0:13" + }, + "scope": 2322, + "src": "202:87:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2323, + "src": "120:205:13", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:292:13" + }, + "id": 13 + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol", + "exportedSymbols": { + "CherryToken": [ + 2349 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2350, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2324, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2325, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2350, + "sourceUnit": 652, + "src": "61:55:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2326, + "name": "ERC20", + "nameLocations": [ + "144:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "144:5:14" + }, + "id": 2327, + "nodeType": "InheritanceSpecifier", + "src": "144:5:14" + } + ], + "canonicalName": "CherryToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2349, + "linearizedBaseContracts": [ + 2349, + 651, + 41, + 755, + 729, + 785 + ], + "name": "CherryToken", + "nameLocation": "129:11:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2334, + "nodeType": "Block", + "src": "194:2:14", + "statements": [] + }, + "id": 2335, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436865727279", + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "177:8:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f", + "typeString": "literal_string \"Cherry\"" + }, + "value": "Cherry" + }, + { + "hexValue": "434854", + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "187:5:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18", + "typeString": "literal_string \"CHT\"" + }, + "value": "CHT" + } + ], + "id": 2332, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2329, + "name": "ERC20", + "nameLocations": [ + "171:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "171:5:14" + }, + "nodeType": "ModifierInvocation", + "src": "171:22:14" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2328, + "nodeType": "ParameterList", + "parameters": [], + "src": "168:2:14" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:14" + }, + "scope": 2349, + "src": "157:39:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2347, + "nodeType": "Block", + "src": "254:37:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2343, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2337, + "src": "271:3:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2344, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "276:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2342, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "265:18:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2346, + "nodeType": "ExpressionStatement", + "src": "265:18:14" + } + ] + }, + "functionSelector": "40c10f19", + "id": 2348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "213:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2337, + "mutability": "mutable", + "name": "_to", + "nameLocation": "226:3:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "218:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2339, + "mutability": "mutable", + "name": "amount", + "nameLocation": "239:6:14", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "231:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "231:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:29:14" + }, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:0:14" + }, + "scope": 2349, + "src": "204:87:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2350, + "src": "120:207:14", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:294:14" + }, + "id": 14 + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "WrappedEduToken": [ + 2375 + ] + }, + "id": 2376, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2351, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:15" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2352, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2376, + "sourceUnit": 652, + "src": "61:55:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2353, + "name": "ERC20", + "nameLocations": [ + "148:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "148:5:15" + }, + "id": 2354, + "nodeType": "InheritanceSpecifier", + "src": "148:5:15" + } + ], + "canonicalName": "WrappedEduToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2375, + "linearizedBaseContracts": [ + 2375, + 651, + 41, + 755, + 729, + 785 + ], + "name": "WrappedEduToken", + "nameLocation": "129:15:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2361, + "nodeType": "Block", + "src": "203:2:15", + "statements": [] + }, + "id": 2362, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "57726170706564456475", + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "181:12:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479", + "typeString": "literal_string \"WrappedEdu\"" + }, + "value": "WrappedEdu" + }, + { + "hexValue": "57454455", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "195:6:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03", + "typeString": "literal_string \"WEDU\"" + }, + "value": "WEDU" + } + ], + "id": 2359, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2356, + "name": "ERC20", + "nameLocations": [ + "175:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "175:5:15" + }, + "nodeType": "ModifierInvocation", + "src": "175:27:15" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:15" + }, + "returnParameters": { + "id": 2360, + "nodeType": "ParameterList", + "parameters": [], + "src": "203:0:15" + }, + "scope": 2375, + "src": "161:44:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2373, + "nodeType": "Block", + "src": "261:44:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2368, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "278:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "282:6:15", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "278:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2370, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "290:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2367, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "272:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "272:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2372, + "nodeType": "ExpressionStatement", + "src": "272:25:15" + } + ] + }, + "functionSelector": "b6b55f25", + "id": 2374, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "222:7:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "amount", + "nameLocation": "238:6:15", + "nodeType": "VariableDeclaration", + "scope": 2374, + "src": "230:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "230:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "229:16:15" + }, + "returnParameters": { + "id": 2366, + "nodeType": "ParameterList", + "parameters": [], + "src": "261:0:15" + }, + "scope": 2375, + "src": "213:92:15", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2376, + "src": "120:221:15", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:308:15" + }, + "id": 15 + } + }, + "contracts": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/core/Factory.sol": { + "PoolFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotSetter", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__PoolExists", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "addToFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "removeFromFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiver", + "type": "address" + } + ], + "name": "setFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_832": { + "entryPoint": null, + "id": 832, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 221, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 242, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 180, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 143, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 198, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1199:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "922:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "968:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "970:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "970:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "970:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "943:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "952:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "939:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "939:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "964:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "935:32:16" + }, + "nodeType": "YulIf", + "src": "932:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1061:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1076:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1090:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1080:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1105:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1151:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1162:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1147:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1147:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1171:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1115:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1115:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1105:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "892:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "903:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "915:6:16", + "type": "" + } + ], + "src": "845:351:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@addToFeeReceiverSetter_986": { + "entryPoint": 571, + "id": 986, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@checkIfSetter_1018": { + "entryPoint": 2042, + "id": 1018, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createPool_942": { + "entryPoint": 671, + "id": 942, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getTokenPairs_958": { + "entryPoint": 404, + "id": 958, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@removeFromFeeReceiverSetter_1001": { + "entryPoint": 303, + "id": 1001, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setFeeReceiver_971": { + "entryPoint": 1965, + "id": 971, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 2279, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2302, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 2352, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2423, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": { + "entryPoint": 2522, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2549, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 2597, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": { + "entryPoint": 2642, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2233, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2201, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_address": { + "entryPoint": 2502, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint160": { + "entryPoint": 2482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2196, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_96": { + "entryPoint": 2469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 2253, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3663:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "907:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "953:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "955:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "955:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "955:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "928:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "937:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "924:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "920:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "920:32:16" + }, + "nodeType": "YulIf", + "src": "917:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1046:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1061:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1075:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1065:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1090:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1125:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1121:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1121:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1145:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1100:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1100:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1090:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "877:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "888:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "900:6:16", + "type": "" + } + ], + "src": "841:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1259:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1305:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1307:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1307:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1307:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1280:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1289:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1276:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1276:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1301:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:32:16" + }, + "nodeType": "YulIf", + "src": "1269:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1398:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1413:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1417:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1442:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1477:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1488:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1473:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1473:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1497:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1452:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1452:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1442:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1525:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1540:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1544:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1570:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1605:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1616:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1601:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1601:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1625:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1580:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1580:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1570:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1221:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1232:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1244:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1252:6:16", + "type": "" + } + ], + "src": "1176:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1738:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1761:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1743:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1743:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1731:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1731:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1731:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1709:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1716:3:16", + "type": "" + } + ], + "src": "1656:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1878:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1888:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1900:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1911:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1896:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1888:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1968:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1981:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1992:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1977:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1977:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1924:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "1924:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1924:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1850:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1862:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1873:4:16", + "type": "" + } + ], + "src": "1780:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2050:52:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2060:35:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2085:2:16", + "type": "", + "value": "96" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2089:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2081:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2081:14:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "2060:8:16" + } + ] + } + ] + }, + "name": "shift_left_96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2031:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "2041:8:16", + "type": "" + } + ], + "src": "2008:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2155:47:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2165:31:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2190:5:16" + } + ], + "functionName": { + "name": "shift_left_96", + "nodeType": "YulIdentifier", + "src": "2176:13:16" + }, + "nodeType": "YulFunctionCall", + "src": "2176:20:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2165:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2147:7:16", + "type": "" + } + ], + "src": "2108:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2255:53:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2265:37:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2296:5:16" + } + ], + "functionName": { + "name": "leftAlign_t_uint160", + "nodeType": "YulIdentifier", + "src": "2276:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2276:26:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2265:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2237:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2247:7:16", + "type": "" + } + ], + "src": "2208:100:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2397:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2414:3:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2457:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "2439:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2439:24:16" + } + ], + "functionName": { + "name": "leftAlign_t_address", + "nodeType": "YulIdentifier", + "src": "2419:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2419:45:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2407:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2407:58:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2385:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2392:3:16", + "type": "" + } + ], + "src": "2314:157:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2621:253:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2694:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2703:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2632:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2632:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2632:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2716:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2727:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2732:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2723:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2723:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2716:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2807:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2816:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2745:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2745:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2745:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2829:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2840:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2845:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2829:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2858:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2865:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2858:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2592:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2598:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2617:3:16", + "type": "" + } + ], + "src": "2477:397:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3006:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3016:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3028:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3039:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3024:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3016:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3096:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3109:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3105:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3105:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3052:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3052:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3052:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3190:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3201:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3186:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3186:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3133:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2970:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2982:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2990:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3001:4:16", + "type": "" + } + ], + "src": "2880:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3372:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3382:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3394:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3405:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3390:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3382:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3462:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3475:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3486:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3471:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3471:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3418:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3418:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3543:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3552:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3499:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3499:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3499:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3625:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3638:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3649:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3634:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3581:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3581:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3581:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3328:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3340:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3348:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3356:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3367:4:16", + "type": "" + } + ], + "src": "3218:442:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o" + }, + "methodIdentifiers": { + "addToFeeReceiverSetter(address)": "5ac40ab3", + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e", + "removeFromFeeReceiverSetter(address)": "48397023", + "setFeeReceiver(address)": "efdcd974" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/LiquidityProvider.sol": { + "LiquidityProvider": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1052": { + "entryPoint": null, + "id": 1052, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 273, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 167, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 224, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1355:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "939:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "985:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "987:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "987:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "960:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "969:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "956:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "981:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "952:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "952:32:16" + }, + "nodeType": "YulIf", + "src": "949:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1078:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1093:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1107:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1122:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1179:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1164:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1164:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1188:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1132:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1132:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1122:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1216:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1231:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1235:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1261:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1307:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1318:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1303:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1327:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1271:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1271:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1261:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "901:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "912:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "924:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "932:6:16", + "type": "" + } + ], + "src": "845:507:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addLiquidity_1185": { + "entryPoint": 1933, + "id": 1185, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@_swap_1350": { + "entryPoint": 2677, + "id": 1350, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addLiquidity_1260": { + "entryPoint": 216, + "id": 1260, + "parameterSlots": 6, + "returnSlots": 3 + }, + "@getAmountOut_2294": { + "entryPoint": 3071, + "id": 2294, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getAmountsOut_1536": { + "entryPoint": 1503, + "id": 1536, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@quote_1460": { + "entryPoint": 3305, + "id": 1460, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sortTokens_2236": { + "entryPoint": 3484, + "id": 2236, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@swapExactTokensForTokens_1421": { + "entryPoint": 802, + "id": 1421, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 5088, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4160, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 5244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 5337, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 5109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": { + "entryPoint": 3934, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4921, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5265, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 5358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256_fromMemory": { + "entryPoint": 5719, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4246, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6542, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4406, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4075, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5310, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 5047, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5154, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6577, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 5954, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3766, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 6414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 6301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3786, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3880, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4650, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "increment_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 5495, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 6367, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4603, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4155, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": { + "entryPoint": 5611, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": { + "entryPoint": 6155, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": { + "entryPoint": 6463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": { + "entryPoint": 6009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3836, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 5221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3890, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:20048:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:16", + "type": "" + } + ], + "src": "841:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:16" + }, + "nodeType": "YulIf", + "src": "977:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:16", + "type": "" + } + ], + "src": "924:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:16", + "type": "" + } + ], + "src": "1052:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1348:906:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1395:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1397:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1397:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1397:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1369:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1378:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1365:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1365:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1390:3:16", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1361:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1361:33:16" + }, + "nodeType": "YulIf", + "src": "1358:120:16" + }, + { + "nodeType": "YulBlock", + "src": "1488:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1503:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1507:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1532:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1567:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1578:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1563:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1587:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1542:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1542:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1532:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1615:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1630:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1644:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1634:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1660:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1695:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1706:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1691:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1670:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1670:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1660:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1743:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1758:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1762:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1788:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1823:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1834:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1819:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1819:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1843:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1798:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1798:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1788:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1871:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1886:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1900:2:16", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1890:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1916:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1951:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1962:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1947:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1971:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1926:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1926:53:16" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1916:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1999:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2014:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2028:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2018:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2045:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2080:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2091:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2076:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2100:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2055:53:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2045:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2128:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2143:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2157:3:16", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2147:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2174:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2220:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2205:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2229:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2184:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2184:53:16" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2174:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1278:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1289:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1301:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1309:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1317:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1325:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1333:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1341:6:16", + "type": "" + } + ], + "src": "1197:1057:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2325:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2342:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2365:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2347:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2347:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2335:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2335:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2335:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2313:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2320:3:16", + "type": "" + } + ], + "src": "2260:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2538:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2548:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2560:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2556:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2556:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2548:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2628:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2641:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2637:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2584:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2584:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2584:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2709:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2722:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2733:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2718:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2665:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2665:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2665:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2791:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2815:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2800:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2747:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2747:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2494:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2506:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2514:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2522:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2533:4:16", + "type": "" + } + ], + "src": "2384:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2921:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2938:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2941:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2931:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2931:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2931:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2832:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3044:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3054:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2955:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3177:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3177:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "3078:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3308:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3357:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3359:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3359:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3359:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3336:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3344:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3332:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3332:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3351:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3328:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3321:35:16" + }, + "nodeType": "YulIf", + "src": "3318:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "3449:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3472:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3459:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3459:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3449:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3522:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3524:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3524:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3524:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3494:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3502:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3491:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3491:30:16" + }, + "nodeType": "YulIf", + "src": "3488:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3614:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3630:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3638:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3626:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3614:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3662:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3676:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3684:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3672:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3672:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3658:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3658:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3692:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3655:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3655:41:16" + }, + "nodeType": "YulIf", + "src": "3652:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3275:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3283:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "3291:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3301:6:16", + "type": "" + } + ], + "src": "3218:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:714:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3973:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3975:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3975:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3975:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3948:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3944:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3969:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3940:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3940:32:16" + }, + "nodeType": "YulIf", + "src": "3937:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4066:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4081:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4095:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4085:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4110:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4145:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4156:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4141:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4165:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4120:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4120:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4110:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4193:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4208:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4222:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4212:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4238:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4273:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4284:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4269:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4293:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4248:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4248:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4238:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4321:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4336:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4367:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4378:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4363:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4350:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4350:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4340:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4429:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4431:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4431:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4431:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4401:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4398:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4398:30:16" + }, + "nodeType": "YulIf", + "src": "4395:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "4526:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4607:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4592:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4616:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "4544:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "4544:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4526:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4534:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3873:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3884:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3896:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3904:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3912:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3920:6:16", + "type": "" + } + ], + "src": "3792:849:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4721:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4732:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4748:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4742:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4742:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4732:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4704:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4714:6:16", + "type": "" + } + ], + "src": "4647:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4878:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4895:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4900:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4888:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4888:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4888:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "4916:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4935:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4931:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4931:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4916:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4850:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4855:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4866:11:16", + "type": "" + } + ], + "src": "4767:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5029:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5039:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5047:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5039:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5060:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5072:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5077:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5068:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5068:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5060:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5016:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5024:4:16", + "type": "" + } + ], + "src": "4957:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5150:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5167:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5190:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5172:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5172:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5160:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5160:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5138:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5145:3:16", + "type": "" + } + ], + "src": "5095:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5289:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5333:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5341:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5299:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "5299:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5299:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "5354:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5372:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5377:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5368:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5354:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5262:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5270:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5278:10:16", + "type": "" + } + ], + "src": "5209:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5469:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5479:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5491:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5496:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5487:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "5479:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5456:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "5464:4:16", + "type": "" + } + ], + "src": "5394:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5667:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5677:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5739:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5691:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "5691:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5681:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5754:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5835:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5840:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5761:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "5761:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5754:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5856:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5921:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5871:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "5871:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5860:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5936:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5950:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6040:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6067:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6061:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "6061:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6044:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6087:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "6138:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6153:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6094:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6094:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6087:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6170:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6233:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6180:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "6180:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6170:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5988:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5991:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5985:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5999:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6001:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6010:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6013:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6006:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6001:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5970:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5972:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5981:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5976:1:16", + "type": "" + } + ] + } + ] + }, + "src": "5966:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "6259:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6266:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6259:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5646:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5653:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5662:3:16", + "type": "" + } + ], + "src": "5543:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6429:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6439:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6451:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6447:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6447:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6439:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6486:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6497:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6482:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6482:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6505:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6501:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6501:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6475:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "6531:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6633:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6642:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6539:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "6539:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6531:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6401:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6413:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6424:4:16", + "type": "" + } + ], + "src": "6281:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6718:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6736:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6743:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6732:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6732:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6752:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6748:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6728:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6728:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6718:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6691:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6701:6:16", + "type": "" + } + ], + "src": "6660:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6796:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6813:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6816:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6806:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6806:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6806:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6910:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6913:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6903:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6903:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6903:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6937:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6927:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6927:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "6768:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6997:238:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7007:58:16", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7029:6:16" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7059:4:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7037:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "7037:27:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7025:40:16" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7011:10:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7176:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7178:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7178:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7178:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7119:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7131:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7116:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7116:34:16" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7155:10:16" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7167:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7152:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7113:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7113:62:16" + }, + "nodeType": "YulIf", + "src": "7110:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7214:2:16", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7218:10:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7207:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7207:22:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7207:22:16" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6983:6:16", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "6991:4:16", + "type": "" + } + ], + "src": "6954:281:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7282:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7292:30:16", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7302:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "7302:20:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7292:6:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7351:6:16" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7359:4:16" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7331:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "7331:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7331:33:16" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7266:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7275:6:16", + "type": "" + } + ], + "src": "7241:129:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7458:229:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7563:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7565:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7565:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7565:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7535:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7543:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7532:30:16" + }, + "nodeType": "YulIf", + "src": "7529:56:16" + }, + { + "nodeType": "YulAssignment", + "src": "7595:25:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7607:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7615:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7603:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7603:17:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7595:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:23:16", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7669:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7675:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7665:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:15:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7657:4:16" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7453:4:16", + "type": "" + } + ], + "src": "7376:311:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7812:608:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7822:90:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7847:56:16" + }, + "nodeType": "YulFunctionCall", + "src": "7847:64:16" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "7831:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "7831:81:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7822:5:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7921:16:16", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7932:5:16" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "7925:3:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7954:5:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7947:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7947:21:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7947:21:16" + }, + { + "nodeType": "YulAssignment", + "src": "7977:23:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7988:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7995:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7984:16:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "7977:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8010:44:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8028:6:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8040:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8048:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8024:30:16" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "8014:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8082:103:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8096:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8096:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8096:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8069:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8077:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8066:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8066:15:16" + }, + "nodeType": "YulIf", + "src": "8063:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8270:144:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8285:21:16", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8303:3:16" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "8289:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8327:3:16" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "8353:10:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8365:3:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8332:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8332:37:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8320:50:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8320:50:16" + }, + { + "nodeType": "YulAssignment", + "src": "8383:21:16", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8394:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8399:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8390:14:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8383:3:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8223:3:16" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8228:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8220:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8220:15:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8236:25:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8238:21:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8249:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8254:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8245:14:16" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8238:3:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8198:21:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8200:17:16", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8211:6:16" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8204:3:16", + "type": "" + } + ] + } + ] + }, + "src": "8194:220:16" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7782:6:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7790:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7798:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7806:5:16", + "type": "" + } + ], + "src": "7710:710:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8520:293:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8569:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8571:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8571:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8571:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8548:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8556:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8544:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8544:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8563:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8540:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8540:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8533:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8533:35:16" + }, + "nodeType": "YulIf", + "src": "8530:122:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8661:34:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8688:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8675:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8675:20:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8665:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8704:103:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8780:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8776:17:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8795:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8803:3:16" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8713:62:16" + }, + "nodeType": "YulFunctionCall", + "src": "8713:94:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8704:5:16" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8498:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8506:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8514:5:16", + "type": "" + } + ], + "src": "8443:370:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8944:704:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8990:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8992:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8992:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8992:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8965:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8974:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8961:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8957:32:16" + }, + "nodeType": "YulIf", + "src": "8954:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9083:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9098:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9112:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9102:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9127:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9162:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9173:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9158:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9158:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9182:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9137:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9137:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9127:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9210:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9225:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9239:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9229:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9255:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9290:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9301:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9286:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9286:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9310:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9265:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9265:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9255:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9338:303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9353:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9380:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9367:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9367:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9357:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9446:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9448:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9448:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9448:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9418:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9426:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9415:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9415:30:16" + }, + "nodeType": "YulIf", + "src": "9412:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "9543:88:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9603:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9599:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9623:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9553:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "9553:78:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9543:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8898:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8909:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8921:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8929:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8937:6:16", + "type": "" + } + ], + "src": "8819:829:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9719:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9736:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9759:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9741:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9729:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9707:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9714:3:16", + "type": "" + } + ], + "src": "9654:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9904:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9914:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9926:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9937:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9922:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9922:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9914:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9994:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10007:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10003:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10003:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9950:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9950:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9950:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10075:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10088:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10084:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10031:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10031:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10031:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9868:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9880:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9888:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9899:4:16", + "type": "" + } + ], + "src": "9778:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10179:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10189:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10204:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10198:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "10198:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10189:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10247:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "10220:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "10220:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10220:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10157:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10165:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10173:5:16", + "type": "" + } + ], + "src": "10116:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10342:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10388:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10390:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10390:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10390:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10363:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10372:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10359:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10359:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10384:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10355:32:16" + }, + "nodeType": "YulIf", + "src": "10352:119:16" + }, + { + "nodeType": "YulBlock", + "src": "10481:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10496:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10500:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10525:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10571:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10582:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10567:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10591:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "10535:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "10535:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10525:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10312:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10323:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10335:6:16", + "type": "" + } + ], + "src": "10265:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10776:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10786:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10798:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10809:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10794:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10794:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10786:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10866:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10879:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10890:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10875:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10875:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10822:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10822:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10822:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10947:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10960:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10971:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10956:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10903:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10903:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10903:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11053:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11038:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10985:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10985:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10732:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10744:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10752:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10760:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10771:4:16", + "type": "" + } + ], + "src": "10622:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11112:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11122:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11147:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11140:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11140:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11133:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11133:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11122:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11094:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11104:7:16", + "type": "" + } + ], + "src": "11070:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11206:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11260:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11269:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11272:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11262:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11262:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11262:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11229:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11251:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11236:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "11236:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11226:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11226:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11219:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11219:40:16" + }, + "nodeType": "YulIf", + "src": "11216:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11199:5:16", + "type": "" + } + ], + "src": "11166:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11348:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11358:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11373:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11367:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11367:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11358:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11413:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "11389:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "11389:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11389:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11326:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11334:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11342:5:16", + "type": "" + } + ], + "src": "11288:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11505:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11551:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11553:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11553:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11553:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11526:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11535:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11522:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11522:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11547:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11518:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11518:32:16" + }, + "nodeType": "YulIf", + "src": "11515:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11644:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11659:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11673:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11663:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11688:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11731:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11742:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11727:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11751:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11698:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "11698:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11688:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11475:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11486:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11498:6:16", + "type": "" + } + ], + "src": "11431:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11880:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11890:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11902:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11913:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11898:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11898:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11890:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11970:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11979:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11926:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "11926:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11926:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11852:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11864:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11875:4:16", + "type": "" + } + ], + "src": "11782:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12098:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12092:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "12092:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12141:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "12114:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "12114:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12114:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:16", + "type": "" + } + ], + "src": "12010:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12236:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12282:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12284:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12284:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12284:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12257:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12266:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12253:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12253:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12278:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12249:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12249:32:16" + }, + "nodeType": "YulIf", + "src": "12246:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12375:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12390:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12404:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12394:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12419:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12465:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12461:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12461:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12485:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "12429:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "12429:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12419:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12206:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12217:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12229:6:16", + "type": "" + } + ], + "src": "12159:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12544:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12561:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12564:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12554:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12554:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12554:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12658:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12661:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12651:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12651:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12651:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12682:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12685:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12675:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12675:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12675:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "12516:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12768:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12814:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12816:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12816:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12816:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12789:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12798:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12785:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12781:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12781:32:16" + }, + "nodeType": "YulIf", + "src": "12778:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12907:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12922:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12936:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12926:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12951:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12986:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12997:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12982:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12982:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13006:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12961:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "12961:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12951:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12738:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12749:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12761:6:16", + "type": "" + } + ], + "src": "12702:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13065:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13085:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13075:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13075:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13075:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13179:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13182:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13172:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13172:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13172:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13196:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13196:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13196:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "13037:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13268:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13278:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13301:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13283:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13283:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13278:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13312:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13335:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13317:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13317:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13312:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13346:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13358:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13361:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13354:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13354:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13346:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13388:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13390:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "13390:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13390:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13379:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13385:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13376:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13376:11:16" + }, + "nodeType": "YulIf", + "src": "13373:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13254:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13257:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "13263:4:16", + "type": "" + } + ], + "src": "13223:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13536:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13541:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13529:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13529:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "13557:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13576:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13581:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13572:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13572:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13557:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13491:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13496:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13507:11:16", + "type": "" + } + ], + "src": "13423:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:32:16", + "type": "", + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13715:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:56:16" + } + ] + }, + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:16", + "type": "" + } + ], + "src": "13598:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13930:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13940:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14006:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14011:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13947:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "13947:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13940:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14112:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulIdentifier", + "src": "14023:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "14023:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14023:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "14125:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14136:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14141:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14132:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14125:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13918:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13926:3:16", + "type": "" + } + ], + "src": "13784:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14327:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14337:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14345:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14337:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14395:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14380:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14403:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14409:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14399:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14373:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "14373:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "14429:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14563:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14437:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "14437:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14429:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14307:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14322:4:16", + "type": "" + } + ], + "src": "14156:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14675:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14721:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14723:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14723:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14723:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14696:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14705:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14692:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14692:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14688:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14688:32:16" + }, + "nodeType": "YulIf", + "src": "14685:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14814:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14829:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14833:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14858:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14904:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14915:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14900:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14900:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14924:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "14868:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "14868:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14858:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14952:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14997:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15043:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15054:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15039:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15039:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15063:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15007:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "15007:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14997:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14637:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14648:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14660:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14668:6:16", + "type": "" + } + ], + "src": "14581:507:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15138:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15148:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15171:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15153:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15153:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15148:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15182:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15205:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15187:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15187:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15182:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15216:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15227:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15230:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15223:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15216:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15256:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15258:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15258:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15258:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15248:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15251:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15245:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15245:10:16" + }, + "nodeType": "YulIf", + "src": "15242:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15125:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15128:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15134:3:16", + "type": "" + } + ], + "src": "15094:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15334:190:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15344:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15371:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15353:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15353:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15344:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15467:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15469:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15469:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15469:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15392:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15399:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15389:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15389:77:16" + }, + "nodeType": "YulIf", + "src": "15386:103:16" + }, + { + "nodeType": "YulAssignment", + "src": "15498:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15509:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15505:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15505:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "15498:3:16" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15320:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "15330:3:16", + "type": "" + } + ], + "src": "15291:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15558:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15575:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15578:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15568:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15568:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15568:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15672:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15675:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15665:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15665:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15665:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15696:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15699:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15689:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15689:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15689:15:16" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "15530:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15870:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15880:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15892:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15903:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15888:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15880:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15960:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15973:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15984:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15969:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15969:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15916:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15916:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15916:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16041:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16054:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16065:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16050:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16050:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15997:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15997:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15997:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16123:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16136:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16147:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16132:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16079:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "16079:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16079:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15838:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15846:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15854:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15865:4:16", + "type": "" + } + ], + "src": "15716:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16270:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16292:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16300:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16288:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16304:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_I" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16281:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16281:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16281:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16360:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16368:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16356:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16356:15:16" + }, + { + "hexValue": "4e5055545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16373:13:16", + "type": "", + "value": "NPUT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16349:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16349:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:38:16" + } + ] + }, + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16262:6:16", + "type": "" + } + ], + "src": "16164:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16546:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16556:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16622:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16627:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16563:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16563:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16556:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16728:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulIdentifier", + "src": "16639:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16639:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16639:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16741:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16752:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16757:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16748:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16741:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16534:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16542:3:16", + "type": "" + } + ], + "src": "16400:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16943:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16953:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16965:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16976:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16961:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16953:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17000:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17011:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16996:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16996:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17019:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17025:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17015:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17015:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16989:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16989:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16989:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17045:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17179:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17053:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17053:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17045:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16923:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16938:4:16", + "type": "" + } + ], + "src": "16772:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:121:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_L" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:16" + }, + { + "hexValue": "4951554944495459", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:10:16", + "type": "", + "value": "IQUIDITY" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17382:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:35:16" + } + ] + }, + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:16", + "type": "" + } + ], + "src": "17197:227:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17576:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17586:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17652:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17657:2:16", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17593:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17593:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17586:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17758:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulIdentifier", + "src": "17669:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17669:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17669:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17771:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17782:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17787:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17778:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17771:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17564:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17572:3:16", + "type": "" + } + ], + "src": "17430:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17973:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17983:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17995:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18006:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17991:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17991:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18030:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18041:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18026:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18026:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18049:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18055:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18045:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18045:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18019:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18019:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18019:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18075:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18209:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18083:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18083:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18075:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17953:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17968:4:16", + "type": "" + } + ], + "src": "17802:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18275:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18285:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18308:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18290:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18290:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18285:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18342:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18324:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18324:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18319:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18353:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18376:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18379:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "18372:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18372:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "18357:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18390:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "18419:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18401:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18401:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18390:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18608:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18610:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18610:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18610:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18541:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18534:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18534:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18564:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18571:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18580:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18567:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18561:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18561:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "18514:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18514:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18494:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18494:113:16" + }, + "nodeType": "YulIf", + "src": "18491:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18258:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18261:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "18267:7:16", + "type": "" + } + ], + "src": "18227:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18671:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18688:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18691:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18681:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18681:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18681:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18785:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18788:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18778:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18778:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18778:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18809:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18812:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "18802:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18802:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18802:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "18643:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18871:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18881:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18904:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18886:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18886:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18881:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18915:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18938:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18920:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18920:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18915:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18962:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "18964:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18964:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18964:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18959:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18952:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18952:9:16" + }, + "nodeType": "YulIf", + "src": "18949:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "18994:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19003:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19006:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18999:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18999:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "18994:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18860:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18863:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "18869:1:16", + "type": "" + } + ], + "src": "18829:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19126:122:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19148:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19156:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19144:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19144:14:16" + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19160:34:16", + "type": "", + "value": "UniswapV2DefiLibrary: INSUFFICIE" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19137:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19137:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19137:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19216:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19224:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19212:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19212:15:16" + }, + { + "hexValue": "4e545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19229:11:16", + "type": "", + "value": "NT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19205:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19205:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19205:36:16" + } + ] + }, + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19118:6:16", + "type": "" + } + ], + "src": "19020:228:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19400:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19410:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19476:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19481:2:16", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19417:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19417:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19410:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19582:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulIdentifier", + "src": "19493:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "19493:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19493:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "19595:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19606:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19611:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19602:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19595:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19388:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19396:3:16", + "type": "" + } + ], + "src": "19254:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19797:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19807:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19819:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19830:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19815:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19815:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19807:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19865:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19850:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19873:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19879:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19869:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19869:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19843:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19843:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19843:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "19899:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20033:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19907:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "19907:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19899:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19777:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19792:4:16", + "type": "" + } + ], + "src": "19626:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1034": [ + { + "length": 32, + "start": 247 + }, + { + "length": 32, + "start": 808 + }, + { + "length": 32, + "start": 1940 + }, + { + "length": 32, + "start": 2152 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o" + }, + "methodIdentifiers": { + "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f", + "getAmountsOut(address,uint256,address[])": "bb7b9c76", + "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}" + } + }, + "contracts/core/Pool.sol": { + "Pool": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientLiquidity", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1659": { + "entryPoint": null, + "id": 1659, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 701, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 516, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 662, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 536, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 856, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 327, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 826, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 794, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 280, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 233, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 576, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 634, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 430, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 586, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 629, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MINIMUM_LIQUIDITY_1640": { + "entryPoint": 3762, + "id": 1640, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_542": { + "entryPoint": 4500, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 5335, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_burn_524": { + "entryPoint": 5205, + "id": 524, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 5032, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 4492, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 4518, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 4666, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_1699": { + "entryPoint": 5187, + "id": 1699, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 5806, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 3768, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 991, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 2461, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 1083, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTokenReserves_2077": { + "entryPoint": 3745, + "id": 2077, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@init_1683": { + "entryPoint": 3903, + "id": 1683, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@liquidateLpTokens_1958": { + "entryPoint": 2533, + "id": 1958, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@min_1558": { + "entryPoint": 5162, + "id": 1558, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_1816": { + "entryPoint": 1092, + "id": 1816, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_197": { + "entryPoint": 845, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sqrt_1612": { + "entryPoint": 4910, + "id": 1612, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@swap_2065": { + "entryPoint": 1681, + "id": 2065, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@symbol_206": { + "entryPoint": 3564, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sync_2102": { + "entryPoint": 4170, + "id": 2102, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@totalSupply_224": { + "entryPoint": 1026, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 1036, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 3710, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 6611, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 7746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 6665, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 7355, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 7153, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 6846, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 6686, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 7767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 7376, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256t_address": { + "entryPoint": 7029, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7313, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 6762, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6442, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 6942, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 7328, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 7682, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7812, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 6777, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6499, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7112, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 6957, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 6355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 6366, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 7867, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 7633, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 7520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 7468, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 6570, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 6750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 6538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6632, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 6929, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 6383, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 7264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 7421, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 7586, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 7217, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 6533, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 6425, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 6588, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 7723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 6642, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10776:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5288:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5334:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5336:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5336:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5336:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5309:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5318:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5305:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5330:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5301:32:16" + }, + "nodeType": "YulIf", + "src": "5298:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5427:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5442:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5456:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5446:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5471:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5506:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5517:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5502:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5502:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5526:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5481:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5481:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5471:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5554:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5569:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5583:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5573:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5599:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5634:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5645:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5630:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5654:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5609:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5609:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5599:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5682:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5697:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5711:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5701:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5727:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5773:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5782:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5737:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5737:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5727:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5242:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5253:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5265:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5273:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5281:6:16", + "type": "" + } + ], + "src": "5188:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5939:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5949:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5961:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5972:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5957:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5949:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6053:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6038:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5985:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6110:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6123:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6134:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6119:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6119:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6066:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6066:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6066:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5903:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5915:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5923:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5934:4:16", + "type": "" + } + ], + "src": "5813:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6234:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6280:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6282:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6282:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6282:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6255:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6264:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6251:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6251:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6276:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6247:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6247:32:16" + }, + "nodeType": "YulIf", + "src": "6244:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6373:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6388:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6402:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6392:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6417:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6452:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6463:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6448:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6448:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6472:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6427:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6427:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6417:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6500:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6515:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6529:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6519:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6545:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6580:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6591:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6576:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6576:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6600:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6555:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6555:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6545:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6196:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6207:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6219:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6227:6:16", + "type": "" + } + ], + "src": "6151:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6659:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6676:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6679:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6669:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6669:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6669:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6776:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6766:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6766:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6766:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6797:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6790:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6790:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6790:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6631:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6868:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6878:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6892:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6898:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6888:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6878:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6909:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6939:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6945:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6935:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6913:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6986:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7000:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7014:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7022:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7010:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7010:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7000:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6966:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6959:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6959:26:16" + }, + "nodeType": "YulIf", + "src": "6956:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7089:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "7103:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7103:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7103:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7053:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7076:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7084:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7073:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7073:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7050:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7050:38:16" + }, + "nodeType": "YulIf", + "src": "7047:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6852:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6861:6:16", + "type": "" + } + ], + "src": "6817:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7208:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7225:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7248:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7230:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7230:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7218:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7218:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7196:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7203:3:16", + "type": "" + } + ], + "src": "7143:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7365:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7375:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7387:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7398:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7383:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7383:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7375:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7455:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7468:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7479:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7464:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7411:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7411:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7411:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7337:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7349:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7360:4:16", + "type": "" + } + ], + "src": "7267:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7558:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7568:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7583:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7577:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "7577:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7568:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7626:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7599:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7599:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7599:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7536:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7544:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7552:5:16", + "type": "" + } + ], + "src": "7495:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7721:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7767:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7769:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7769:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7769:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7742:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7751:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7738:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7763:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7734:32:16" + }, + "nodeType": "YulIf", + "src": "7731:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7860:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7875:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7889:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7879:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7904:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7950:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7946:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7970:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "7914:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "7914:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7691:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7702:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7714:6:16", + "type": "" + } + ], + "src": "7644:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8029:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8049:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8039:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8039:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8039:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8143:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8146:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8136:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8136:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8136:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8167:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8170:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8160:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8160:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "8001:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8232:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8242:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8265:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8247:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8247:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8242:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8276:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8299:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8281:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8281:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8276:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8310:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8325:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8318:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8310:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8352:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8354:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8354:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8354:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8343:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8349:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8340:11:16" + }, + "nodeType": "YulIf", + "src": "8337:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8218:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8221:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "8227:4:16", + "type": "" + } + ], + "src": "8187:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8435:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8445:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8468:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8450:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8450:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8445:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8479:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8502:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8484:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8484:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8479:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8513:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8536:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8539:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8532:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8532:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "8517:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8550:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "8579:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8561:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8561:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8550:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8768:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8701:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8694:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8694:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8724:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8731:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8740:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8727:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8721:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8721:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8674:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8674:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8654:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8654:113:16" + }, + "nodeType": "YulIf", + "src": "8651:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8418:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8421:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "8427:7:16", + "type": "" + } + ], + "src": "8387:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8831:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8848:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8841:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8841:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8945:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8948:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8938:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8938:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8938:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8969:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8972:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8962:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8962:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8962:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "8803:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9031:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9041:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9064:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9046:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9046:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9041:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9075:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9098:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9080:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9080:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9075:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9122:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "9124:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "9124:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9124:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9119:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9112:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9112:9:16" + }, + "nodeType": "YulIf", + "src": "9109:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "9154:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9163:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9166:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9159:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "9154:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9020:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9023:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "9029:1:16", + "type": "" + } + ], + "src": "8989:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9306:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9316:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9328:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9339:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9324:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9324:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9316:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9396:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9409:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9420:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9405:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9352:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9352:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9352:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9477:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9501:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9486:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "9433:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9433:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9270:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9282:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9290:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9301:4:16", + "type": "" + } + ], + "src": "9180:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9558:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9612:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9621:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9624:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9614:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9614:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9581:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9603:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9588:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "9588:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9578:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9578:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9571:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9571:40:16" + }, + "nodeType": "YulIf", + "src": "9568:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9551:5:16", + "type": "" + } + ], + "src": "9518:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9700:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9710:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9725:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "9719:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9710:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9765:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9741:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9741:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9678:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9686:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9694:5:16", + "type": "" + } + ], + "src": "9640:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9857:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9905:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9905:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9878:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9887:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9874:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9874:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9870:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9870:32:16" + }, + "nodeType": "YulIf", + "src": "9867:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9996:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10011:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10025:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10015:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10040:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10083:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10094:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10079:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10079:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10103:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "10050:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "10050:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10040:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9827:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9838:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9850:6:16", + "type": "" + } + ], + "src": "9783:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10288:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10298:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10310:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10321:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10306:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10306:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10298:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10378:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10391:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10402:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10387:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10334:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10334:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10334:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10459:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10468:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10415:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10415:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10415:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10541:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10554:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10565:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10550:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10550:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10497:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10497:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10497:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10244:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10264:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10272:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10283:4:16", + "type": "" + } + ], + "src": "10134:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10626:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10636:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10659:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10641:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10636:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10670:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10693:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10675:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10675:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10670:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10704:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10715:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10718:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10711:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10711:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10704:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10744:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10746:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "10746:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10746:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10736:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10739:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10733:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10733:10:16" + }, + "nodeType": "YulIf", + "src": "10730:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10613:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10616:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10622:3:16", + "type": "" + } + ], + "src": "10582:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1631": [ + { + "length": 32, + "start": 3928 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o" + }, + "methodIdentifiers": { + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "name()": "06fdde03", + "swap(uint256,uint256,address)": "6d9a640a", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IFactory.sol": { + "IFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolPair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IPool.sol": { + "IPool": { + "abi": [ + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "swap(uint256,uint256,address)": "6d9a640a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IWedu.sol": { + "IWEDU": { + "abi": [ + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "deposit()": "d0e30db0", + "transfer(address,uint256)": "a9059cbb", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}" + } + }, + "contracts/core/libraries/Library.sol": { + "DefiLibrary": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "AppleToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2308": { + "entryPoint": null, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:13:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2321": { + "entryPoint": 798, + "id": 2321, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ", + "sourceMap": "120:205:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:13:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "CherryToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2335": { + "entryPoint": null, + "id": 2335, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:14:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1208, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1748, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1618, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1200, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1226, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1374, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2219, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1065, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 812, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2348": { + "entryPoint": 798, + "id": 2348, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 884, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1030, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3078, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3442, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3259, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3099, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3602, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3175, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3217, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3355, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3617, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3163, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2951, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3045, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3342, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2796, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3553, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3506, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2946, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3001, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3055, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5271:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5317:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5319:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5319:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5319:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5292:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5301:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5288:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5313:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5284:32:16" + }, + "nodeType": "YulIf", + "src": "5281:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5410:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5425:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5439:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5429:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5454:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5489:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5500:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5485:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5485:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5509:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5464:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5464:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5454:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5537:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5552:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5566:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5556:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5582:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5617:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5613:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5613:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5637:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5592:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5592:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5582:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5233:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5244:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5264:6:16", + "type": "" + } + ], + "src": "5188:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5696:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5713:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5716:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5706:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5706:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5706:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5810:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5813:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5803:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5803:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5803:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5834:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5837:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5827:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5827:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5827:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "5668:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5905:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5915:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5929:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5935:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5925:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5925:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5915:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5946:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5976:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5982:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5972:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5972:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "5950:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6037:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6051:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6059:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6047:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6047:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6037:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6003:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5996:26:16" + }, + "nodeType": "YulIf", + "src": "5993:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6126:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6140:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6140:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6140:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6090:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6113:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6121:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6110:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6110:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6087:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6087:38:16" + }, + "nodeType": "YulIf", + "src": "6084:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5889:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5898:6:16", + "type": "" + } + ], + "src": "5854:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6245:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6262:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6285:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6267:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6267:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6255:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6255:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6255:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6233:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6240:3:16", + "type": "" + } + ], + "src": "6180:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6458:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6468:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6480:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6491:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6476:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6476:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6468:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6548:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6561:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6572:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6557:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6557:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6504:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6504:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6504:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6629:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6642:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6653:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6638:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6638:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6585:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6585:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6585:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6711:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6724:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6735:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6720:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6720:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6667:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6667:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6667:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6414:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6426:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6434:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6453:4:16", + "type": "" + } + ], + "src": "6304:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6850:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6860:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6872:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6883:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6868:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6868:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6860:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6940:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6953:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6964:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6949:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6949:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6896:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6896:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6896:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6822:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6834:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6845:4:16", + "type": "" + } + ], + "src": "6752:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:16" + }, + "nodeType": "YulIf", + "src": "7314:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:16", + "type": "" + } + ], + "src": "7166:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ", + "sourceMap": "120:207:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:14:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "WrappedEduToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2362": { + "entryPoint": null, + "id": 2362, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610fa0806200041b6000396000f3fe6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFA0 DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x252 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAB PUSH2 0x28F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF5 SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x113 PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14B SWAP2 SWAP1 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x37D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xDAC JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH2 0x3CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x460 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xDD9 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x279 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x286 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x29E SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2CA SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x317 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2EC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x317 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x32C PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x339 DUP2 DUP6 DUP6 PUSH2 0x51F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x359 PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x366 DUP6 DUP3 DUP6 PUSH2 0x531 JUMP JUMPDEST PUSH2 0x371 DUP6 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3DD SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x409 SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x456 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x42B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x456 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x439 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x46B PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x478 DUP2 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x48D CALLER DUP3 PUSH2 0x6B9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x52C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x73B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53D DUP5 DUP5 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x5BF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5AF JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5BE DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x73B JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x637 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62E SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6A9 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6A0 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B4 DUP4 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x72B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x722 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x737 PUSH1 0x0 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x81F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x816 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x90C JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x903 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x964 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x958 SWAP2 SWAP1 PUSH2 0xF36 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9E7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA80 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xACD JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB71 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xB56 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB99 DUP3 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0xBA3 DUP2 DUP6 PUSH2 0xB42 JUMP JUMPDEST SWAP4 POP PUSH2 0xBB3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB53 JUMP JUMPDEST PUSH2 0xBBC DUP2 PUSH2 0xB7D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBE1 DUP2 DUP5 PUSH2 0xB8E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC19 DUP3 PUSH2 0xBEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC29 DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP2 EQ PUSH2 0xC34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC46 DUP2 PUSH2 0xC20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5F DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP2 EQ PUSH2 0xC6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC7C DUP2 PUSH2 0xC56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC99 JUMPI PUSH2 0xC98 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCA7 DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCB8 DUP6 DUP3 DUP7 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD7 DUP2 PUSH2 0xCC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCF2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCCE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD01 DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD1C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD49 DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD5A DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD6B DUP7 DUP3 DUP8 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD8B DUP2 PUSH2 0xD75 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC2 JUMPI PUSH2 0xDC1 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDD0 DUP5 DUP3 DUP6 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDEF JUMPI PUSH2 0xDEE PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFD DUP5 DUP3 DUP6 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH2 0xE1C PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE2B DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE3C DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE8D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xE46 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEAF DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xECA PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xEA6 JUMP JUMPDEST PUSH2 0xED7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0xEE4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF01 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEA6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF41 DUP3 PUSH2 0xC4C JUMP JUMPDEST SWAP2 POP PUSH2 0xF4C DUP4 PUSH2 0xC4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xF64 JUMPI PUSH2 0xF63 PUSH2 0xF07 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 DELEGATECALL COINBASE 0xB1 0xA8 PUSH4 0x1CBC27EE 0xD3 0x2C 0xDD PUSH6 0x8C305A617501 0xA5 SWAP13 0xC3 0xC 0x25 0xCE EXTCODECOPY DUP4 SWAP14 0x29 EXTCODECOPY SHR PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "120:221:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:221:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:221:15:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1311, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1851, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1721, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1303, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1329, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1477, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2322, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1168, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 801, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 902, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 893, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@deposit_2374": { + "entryPoint": 1155, + "id": 2374, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 655, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 974, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 836, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 846, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1120, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3127, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3181, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3500, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3590, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3362, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3202, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 3545, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3750, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3278, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2958, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3320, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3458, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3820, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3765, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3293, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3015, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3335, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2871, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2882, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3894, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3086, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3266, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3054, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2899, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3701, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3847, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3654, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3049, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2941, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3104, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3158, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7695:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5254:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5300:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5302:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5302:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5302:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5275:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5284:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5271:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5271:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5296:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5267:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5267:32:16" + }, + "nodeType": "YulIf", + "src": "5264:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5393:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5408:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5422:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5412:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5437:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5472:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5483:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5468:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5492:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5447:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5447:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5437:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5224:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5235:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5247:6:16", + "type": "" + } + ], + "src": "5188:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5606:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5652:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5654:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5654:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5654:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5627:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5636:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5623:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5623:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5648:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5619:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5619:32:16" + }, + "nodeType": "YulIf", + "src": "5616:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5745:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5760:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5774:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5764:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5789:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5824:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5835:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5820:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5820:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5844:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5799:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5799:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5789:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5872:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5887:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5901:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5891:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5917:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5952:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5963:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5948:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5948:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5972:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5927:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5927:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5917:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5568:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5579:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5591:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5599:6:16", + "type": "" + } + ], + "src": "5523:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6031:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6048:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6051:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6041:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6041:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6041:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6145:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6148:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6138:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6138:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6138:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6169:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6172:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6162:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6162:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6162:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6003:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6240:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6250:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6264:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6270:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6260:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6260:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6250:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6281:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6311:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6317:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6307:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6307:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6285:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6358:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6372:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6386:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6394:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6382:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6382:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6372:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6338:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6331:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6331:26:16" + }, + "nodeType": "YulIf", + "src": "6328:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6461:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6475:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6425:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6448:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6456:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6445:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6445:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6422:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6422:38:16" + }, + "nodeType": "YulIf", + "src": "6419:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6224:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6233:6:16", + "type": "" + } + ], + "src": "6189:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6580:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6597:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6620:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6602:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6602:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6590:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6590:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6590:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6568:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6575:3:16", + "type": "" + } + ], + "src": "6515:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6793:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6803:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6815:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6826:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6811:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6811:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6803:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6883:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6896:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6907:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6892:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6839:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6839:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6839:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6964:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6977:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6988:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6973:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6973:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6920:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6920:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6920:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7046:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7059:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7070:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7055:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7055:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7002:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7002:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7002:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6749:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6761:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6769:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6777:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6788:4:16", + "type": "" + } + ], + "src": "6639:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7185:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7195:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7207:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7218:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7203:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7203:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7195:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7275:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7288:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7299:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7284:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7231:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7231:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7231:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7157:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7169:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7180:4:16", + "type": "" + } + ], + "src": "7087:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7343:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7360:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7363:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7353:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7353:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7353:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7457:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7460:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7450:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7450:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7450:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7481:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7484:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7474:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7474:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7474:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "7315:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7545:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7555:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7578:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7560:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7560:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7555:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7589:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7612:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7594:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7594:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7589:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7623:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7634:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7637:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7630:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7623:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7663:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7665:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7665:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7655:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7658:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7652:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7652:10:16" + }, + "nodeType": "YulIf", + "src": "7649:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7532:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7535:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7541:3:16", + "type": "" + } + ], + "src": "7501:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x252 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAB PUSH2 0x28F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF5 SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x113 PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14B SWAP2 SWAP1 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x37D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xDAC JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH2 0x3CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x460 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xDD9 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x279 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x286 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x29E SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2CA SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x317 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2EC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x317 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x32C PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x339 DUP2 DUP6 DUP6 PUSH2 0x51F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x359 PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x366 DUP6 DUP3 DUP6 PUSH2 0x531 JUMP JUMPDEST PUSH2 0x371 DUP6 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3DD SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x409 SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x456 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x42B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x456 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x439 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x46B PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x478 DUP2 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x48D CALLER DUP3 PUSH2 0x6B9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x52C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x73B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53D DUP5 DUP5 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x5BF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5AF JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5BE DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x73B JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x637 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62E SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6A9 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6A0 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B4 DUP4 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x72B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x722 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x737 PUSH1 0x0 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x81F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x816 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x90C JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x903 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x964 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x958 SWAP2 SWAP1 PUSH2 0xF36 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9E7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA80 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xACD JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB71 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xB56 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB99 DUP3 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0xBA3 DUP2 DUP6 PUSH2 0xB42 JUMP JUMPDEST SWAP4 POP PUSH2 0xBB3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB53 JUMP JUMPDEST PUSH2 0xBBC DUP2 PUSH2 0xB7D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBE1 DUP2 DUP5 PUSH2 0xB8E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC19 DUP3 PUSH2 0xBEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC29 DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP2 EQ PUSH2 0xC34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC46 DUP2 PUSH2 0xC20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5F DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP2 EQ PUSH2 0xC6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC7C DUP2 PUSH2 0xC56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC99 JUMPI PUSH2 0xC98 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCA7 DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCB8 DUP6 DUP3 DUP7 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD7 DUP2 PUSH2 0xCC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCF2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCCE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD01 DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD1C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD49 DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD5A DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD6B DUP7 DUP3 DUP8 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD8B DUP2 PUSH2 0xD75 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC2 JUMPI PUSH2 0xDC1 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDD0 DUP5 DUP3 DUP6 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDEF JUMPI PUSH2 0xDEE PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFD DUP5 DUP3 DUP6 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH2 0xE1C PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE2B DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE3C DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE8D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xE46 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEAF DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xECA PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xEA6 JUMP JUMPDEST PUSH2 0xED7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0xEE4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF01 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEA6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF41 DUP3 PUSH2 0xC4C JUMP JUMPDEST SWAP2 POP PUSH2 0xF4C DUP4 PUSH2 0xC4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xF64 JUMPI PUSH2 0xF63 PUSH2 0xF07 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 DELEGATECALL COINBASE 0xB1 0xA8 PUSH4 0x1CBC27EE 0xD3 0x2C 0xDD PUSH6 0x8C305A617501 0xA5 SWAP13 0xC3 0xC 0x25 0xCE EXTCODECOPY DUP4 SWAP14 0x29 EXTCODECOPY SHR PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "120:221:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;213:92:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3551:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;3004:116::-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;213:92:15:-;272:25;278:10;290:6;272:5;:25::i;:::-;213:92;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:180::-;6051:77;6048:1;6041:88;6148:4;6145:1;6138:15;6172:4;6169:1;6162:15;6189:320;6233:6;6270:1;6264:4;6260:12;6250:22;;6317:1;6311:4;6307:12;6338:18;6328:81;;6394:4;6386:6;6382:17;6372:27;;6328:81;6456:2;6448:6;6445:14;6425:18;6422:38;6419:84;;6475:18;;:::i;:::-;6419:84;6240:269;6189:320;;;:::o;6515:118::-;6602:24;6620:5;6602:24;:::i;:::-;6597:3;6590:37;6515:118;;:::o;6639:442::-;6788:4;6826:2;6815:9;6811:18;6803:26;;6839:71;6907:1;6896:9;6892:17;6883:6;6839:71;:::i;:::-;6920:72;6988:2;6977:9;6973:18;6964:6;6920:72;:::i;:::-;7002;7070:2;7059:9;7055:18;7046:6;7002:72;:::i;:::-;6639:442;;;;;;:::o;7087:222::-;7180:4;7218:2;7207:9;7203:18;7195:26;;7231:71;7299:1;7288:9;7284:17;7275:6;7231:71;:::i;:::-;7087:222;;;;:::o;7315:180::-;7363:77;7360:1;7353:88;7460:4;7457:1;7450:15;7484:4;7481:1;7474:15;7501:191;7541:3;7560:20;7578:1;7560:20;:::i;:::-;7555:25;;7594:20;7612:1;7594:20;:::i;:::-;7589:25;;7637:1;7634;7630:9;7623:16;;7658:3;7655:1;7652:10;7649:36;;;7665:18;;:::i;:::-;7649:36;7501:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "deposit(uint256)": "b6b55f25", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEduToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0xcebefb13c4bd5bbf050608f566ce24f86ce557e7e57b0e1af0ad61395b0ce5b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f73113abe8c68ba7766d6c5d7b469208084e3af523ffd6ec7290235e531a2ca\",\"dweb:/ipfs/QmW8EPt44JhzcTXoYkJ1iThsG7VDXod74ZstHDkWwwX7er\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/build-info/b58a32b7e115e25f756aa700ce5572e8.json b/Core uniswap/ignition/deployments/chain-11155111/build-info/b58a32b7e115e25f756aa700ce5572e8.json new file mode 100644 index 00000000..cbfa808a --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/build-info/b58a32b7e115e25f756aa700ce5572e8.json @@ -0,0 +1,22197 @@ +{ + "id": "b58a32b7e115e25f756aa700ce5572e8", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "contracts/core/interfaces/IFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}" + }, + "contracts/core/interfaces/IPool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}" + }, + "contracts/core/interfaces/IWedu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}" + }, + "contracts/core/libraries/Library.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}" + }, + "contracts/core/LiquidityProvider.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4393, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4375 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4413, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4395 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 77 + ] + }, + "id": 78, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "132:71:0", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 77, + "linearizedBaseContracts": [ + 77 + ], + "name": "IERC20", + "nameLocation": "214:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "227:158:0", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 11, + "name": "Transfer", + "nameLocation": "396:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "405:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "427:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "447:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:0" + }, + "src": "390:72:0" + }, + { + "anonymous": false, + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "468:148:0", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 20, + "name": "Approval", + "nameLocation": "627:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:0", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "636:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:0", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "659:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:0", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "684:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:0" + }, + "src": "621:78:0" + }, + { + "documentation": { + "id": 21, + "nodeType": "StructuredDocumentation", + "src": "705:65:0", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 26, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "821:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:0" + }, + "scope": 77, + "src": "775:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 27, + "nodeType": "StructuredDocumentation", + "src": "836:71:0", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 34, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 30, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:0", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "931:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:0" + }, + "returnParameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34, + "src": "971:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:0" + }, + "scope": 77, + "src": "912:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 35, + "nodeType": "StructuredDocumentation", + "src": "986:213:0", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 44, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:0", + "nodeType": "VariableDeclaration", + "scope": 44, + "src": "1222:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:0", + "nodeType": "VariableDeclaration", + "scope": 44, + "src": "1234:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:0" + }, + "returnParameters": { + "id": 43, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44, + "src": "1267:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 41, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:0" + }, + "scope": 77, + "src": "1204:69:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 45, + "nodeType": "StructuredDocumentation", + "src": "1279:264:0", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 54, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:0", + "nodeType": "VariableDeclaration", + "scope": 54, + "src": "1567:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 46, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:0", + "nodeType": "VariableDeclaration", + "scope": 54, + "src": "1582:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:0" + }, + "returnParameters": { + "id": 53, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 54, + "src": "1622:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 51, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:0" + }, + "scope": 77, + "src": "1548:83:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 55, + "nodeType": "StructuredDocumentation", + "src": "1637:667:0", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 64, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:0", + "nodeType": "VariableDeclaration", + "scope": 64, + "src": "2326:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 56, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:0", + "nodeType": "VariableDeclaration", + "scope": 64, + "src": "2343:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 58, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 64, + "src": "2376:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 61, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:0" + }, + "scope": 77, + "src": "2309:73:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 65, + "nodeType": "StructuredDocumentation", + "src": "2388:297:0", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 76, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:0", + "nodeType": "VariableDeclaration", + "scope": 76, + "src": "2712:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:0", + "nodeType": "VariableDeclaration", + "scope": 76, + "src": "2726:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:0", + "nodeType": "VariableDeclaration", + "scope": 76, + "src": "2738:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 70, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:0" + }, + "returnParameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 76, + "src": "2771:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 73, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:0" + }, + "scope": 77, + "src": "2690:87:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 78, + "src": "204:2575:0", + "usedErrors": [], + "usedEvents": [ + 11, + 20 + ] + } + ], + "src": "106:2674:0" + }, + "id": 0 + }, + "contracts/core/LiquidityProvider.sol": { + "ast": { + "absolutePath": "contracts/core/LiquidityProvider.sol", + "exportedSymbols": { + "DefiLibrary": [ + 787 + ], + "IERC20": [ + 77 + ], + "IFactory": [ + 616 + ], + "IPool": [ + 658 + ], + "IWEDU": [ + 678 + ], + "LiquidityProvider": [ + 595 + ], + "LiquidityProvider__EDUTransferFailed": [ + 90 + ], + "LiquidityProvider__InsufficientAmount": [ + 86 + ], + "LiquidityProvider__InsufficientOutputAmount": [ + 88 + ], + "PoolFactory__IdenticalAddress": [ + 682 + ], + "PoolFactory__ZeroAddress": [ + 684 + ] + }, + "id": 596, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 79, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 80, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 596, + "sourceUnit": 78, + "src": "120:56:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "file": "./interfaces/IFactory.sol", + "id": 81, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 596, + "sourceUnit": 617, + "src": "178:35:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 82, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 596, + "sourceUnit": 659, + "src": "215:32:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "file": "./interfaces/IWedu.sol", + "id": 83, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 596, + "sourceUnit": 679, + "src": "249:32:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/libraries/Library.sol", + "file": "./libraries/Library.sol", + "id": 84, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 596, + "sourceUnit": 788, + "src": "283:33:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "d0368649", + "id": 86, + "name": "LiquidityProvider__InsufficientAmount", + "nameLocation": "326:37:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [], + "src": "363:2:1" + }, + "src": "320:46:1" + }, + { + "errorSelector": "dec0fbbe", + "id": 88, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nameLocation": "374:43:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:1" + }, + "src": "368:52:1" + }, + { + "errorSelector": "0221f34c", + "id": 90, + "name": "LiquidityProvider__EDUTransferFailed", + "nameLocation": "428:36:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:1" + }, + "src": "422:45:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LiquidityProvider", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 595, + "linearizedBaseContracts": [ + 595 + ], + "name": "LiquidityProvider", + "nameLocation": "480:17:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 92, + "mutability": "immutable", + "name": "factoryAddress", + "nameLocation": "531:14:1", + "nodeType": "VariableDeclaration", + "scope": 595, + "src": "505:40:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 94, + "mutability": "immutable", + "name": "WEDU", + "nameLocation": "578:4:1", + "nodeType": "VariableDeclaration", + "scope": 595, + "src": "552:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 93, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 109, + "nodeType": "Block", + "src": "643:74:1", + "statements": [ + { + "expression": { + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 101, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "654:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 102, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "671:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:32:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "654:32:1" + }, + { + "expression": { + "id": 107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 105, + "name": "WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "697:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 106, + "name": "_WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "704:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "697:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 108, + "nodeType": "ExpressionStatement", + "src": "697:12:1" + } + ] + }, + "id": 110, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 99, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "_factoryAddress", + "nameLocation": "611:15:1", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "603:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 95, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "_WEDU", + "nameLocation": "636:5:1", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "628:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 97, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "602:40:1" + }, + "returnParameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:1" + }, + "scope": 595, + "src": "591:126:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 242, + "nodeType": "Block", + "src": "995:1414:1", + "statements": [ + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "pair", + "nameLocation": "1014:4:1", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "1006:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 138, + "initialValue": { + "arguments": [ + { + "id": 135, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "1060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 136, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "1069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 132, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1030:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 131, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 616, + "src": "1021:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$616_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$616", + "typeString": "contract IFactory" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1046:13:1", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 606, + "src": "1021:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1006:71:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 139, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1108:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1100:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1100:7:1", + "typeDescriptions": {} + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1100:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1092:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 155, + "nodeType": "IfStatement", + "src": "1088:97:1", + "trueBody": { + "expression": { + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 145, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1125:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 150, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "1168:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 151, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "1177:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 147, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "1141:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 146, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 616, + "src": "1132:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$616_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$616", + "typeString": "contract IFactory" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1157:10:1", + "memberName": "createPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 615, + "src": "1132:35:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:60:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 154, + "nodeType": "ExpressionStatement", + "src": "1125:60:1" + } + }, + { + "assignments": [ + 157, + 159 + ], + "declarations": [ + { + "constant": false, + "id": 157, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "1207:8:1", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "1199:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1199:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "1225:8:1", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "1217:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 165, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 161, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1243:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 160, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "1237:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$658_$", + "typeString": "type(contract IPool)" + } + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$658", + "typeString": "contract IPool" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1249:16:1", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 648, + "src": "1237:28:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1198:69:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 166, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "1284:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1296:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 169, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "1301:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1313:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1301:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 240, + "nodeType": "Block", + "src": "1416:986:1", + "statements": [ + { + "assignments": [ + 183 + ], + "declarations": [ + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "optimalAmountOfTokenB", + "nameLocation": "1439:21:1", + "nodeType": "VariableDeclaration", + "scope": 240, + "src": "1431:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 182, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1431:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 189, + "initialValue": { + "arguments": [ + { + "id": 185, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "1487:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 186, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "1527:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 187, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "1554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 184, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "1463:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1463:114:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:146:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 190, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "1596:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 191, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 118, + "src": "1621:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1596:46:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 238, + "nodeType": "Block", + "src": "1938:453:1", + "statements": [ + { + "assignments": [ + 210 + ], + "declarations": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "amountAOptimal", + "nameLocation": "1965:14:1", + "nodeType": "VariableDeclaration", + "scope": 238, + "src": "1957:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 216, + "initialValue": { + "arguments": [ + { + "id": 212, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 118, + "src": "2010:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 213, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "2054:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 214, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "2085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 211, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "1982:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:130:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1957:155:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 218, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "2138:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 219, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2156:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2138:39:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 217, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2131:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2131:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 222, + "nodeType": "ExpressionStatement", + "src": "2131:47:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 223, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "2201:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 224, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 120, + "src": "2218:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2201:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 229, + "nodeType": "IfStatement", + "src": "2197:99:1", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 226, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 86, + "src": "2257:37:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2257:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 228, + "nodeType": "RevertStatement", + "src": "2250:46:1" + } + }, + { + "expression": { + "id": 236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 230, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2316:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 231, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "2325:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 232, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2315:18:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 233, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "2337:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 234, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 118, + "src": "2353:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 235, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:39:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2315:60:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 237, + "nodeType": "ExpressionStatement", + "src": "2315:60:1" + } + ] + }, + "id": 239, + "nodeType": "IfStatement", + "src": "1592:799:1", + "trueBody": { + "id": 208, + "nodeType": "Block", + "src": "1644:288:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 193, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "1667:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 194, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "1691:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 199, + "nodeType": "IfStatement", + "src": "1663:106:1", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 196, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 86, + "src": "1730:37:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1730:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 198, + "nodeType": "RevertStatement", + "src": "1723:46:1" + } + }, + { + "expression": { + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 200, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "1789:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 201, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "1798:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 202, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1788:18:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 203, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "1832:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 204, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "1876:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 205, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1809:107:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1788:128:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 207, + "nodeType": "ExpressionStatement", + "src": "1788:128:1" + } + ] + } + } + ] + }, + "id": 241, + "nodeType": "IfStatement", + "src": "1280:1122:1", + "trueBody": { + "id": 181, + "nodeType": "Block", + "src": "1316:94:1", + "statements": [ + { + "expression": { + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 173, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "1332:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 174, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "1341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 175, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 176, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "1353:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 177, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 118, + "src": "1376:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 178, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1352:46:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1331:67:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 180, + "nodeType": "ExpressionStatement", + "src": "1331:67:1" + } + ] + } + } + ] + }, + "id": 243, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLiquidity", + "nameLocation": "734:13:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "766:7:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "758:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "758:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "792:7:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "818:21:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "810:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 118, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "858:21:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "850:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "850:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "898:9:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "890:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 122, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "926:9:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "918:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "918:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "747:195:1" + }, + "returnParameters": { + "id": 128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 125, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "969:7:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "961:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 127, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "986:7:1", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "978:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "960:34:1" + }, + "scope": 595, + "src": "725:1684:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 317, + "nodeType": "Block", + "src": "2703:487:1", + "statements": [ + { + "expression": { + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 264, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 265, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 260, + "src": "2724:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 266, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2714:18:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 268, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 245, + "src": "2763:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 269, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 247, + "src": "2784:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 270, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "2805:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 271, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "2841:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 272, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 253, + "src": "2877:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 273, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 255, + "src": "2901:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 267, + "name": "_addLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 243, + "src": "2735:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:186:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2714:207:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "2714:207:1" + }, + { + "assignments": [ + 278 + ], + "declarations": [ + { + "constant": false, + "id": 278, + "mutability": "mutable", + "name": "pair", + "nameLocation": "2940:4:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "2932:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2932:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 286, + "initialValue": { + "arguments": [ + { + "id": 283, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 245, + "src": "2986:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 284, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 247, + "src": "2994:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 280, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "2956:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 279, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 616, + "src": "2947:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$616_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$616", + "typeString": "contract IFactory" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2972:13:1", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 606, + "src": "2947:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2932:69:1" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 291, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3040:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3044:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3040:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 293, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "3052:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 294, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "3058:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 288, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 245, + "src": "3019:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 287, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "3012:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$77_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$77", + "typeString": "contract IERC20" + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3027:12:1", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 76, + "src": "3012:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 296, + "nodeType": "ExpressionStatement", + "src": "3012:54:1" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 301, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3105:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3105:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 303, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "3117:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 304, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 260, + "src": "3123:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 298, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 247, + "src": "3084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 297, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "3077:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$77_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$77", + "typeString": "contract IERC20" + } + }, + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3092:12:1", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 76, + "src": "3077:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 306, + "nodeType": "ExpressionStatement", + "src": "3077:54:1" + }, + { + "expression": { + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 307, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "3142:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 312, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3171:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3171:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 309, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "3160:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 308, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "3154:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$658_$", + "typeString": "type(contract IPool)" + } + }, + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$658", + "typeString": "contract IPool" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3166:4:1", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 632, + "src": "3154:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3142:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 316, + "nodeType": "ExpressionStatement", + "src": "3142:40:1" + } + ] + }, + "functionSelector": "3351733f", + "id": 318, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "2426:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "2457:6:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2449:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2449:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 247, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "2482:6:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2474:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "2507:21:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2499:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 251, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "2547:21:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2539:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 250, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 253, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "2587:9:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2579:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 255, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "2615:9:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2607:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2438:193:1" + }, + "returnParameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2658:7:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2650:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 260, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2675:7:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2667:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2692:9:1", + "nodeType": "VariableDeclaration", + "scope": 318, + "src": "2684:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2684:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2649:53:1" + }, + "scope": 595, + "src": "2417:773:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 407, + "nodeType": "Block", + "src": "4116:531:1", + "statements": [ + { + "body": { + "id": 405, + "nodeType": "Block", + "src": "4166:474:1", + "statements": [ + { + "assignments": [ + 344, + 346 + ], + "declarations": [ + { + "constant": false, + "id": 344, + "mutability": "mutable", + "name": "input", + "nameLocation": "4190:5:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "4182:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4182:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "output", + "nameLocation": "4205:6:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "4197:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4197:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 356, + "initialValue": { + "components": [ + { + "baseExpression": { + "id": 347, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "4216:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 349, + "indexExpression": { + "id": 348, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 350, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "4225:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 354, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 351, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4230:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4230:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 355, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4215:22:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4181:56:1" + }, + { + "assignments": [ + 358, + null + ], + "declarations": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "token0", + "nameLocation": "4261:6:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "4253:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 364, + "initialValue": { + "arguments": [ + { + "id": 361, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "4296:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 362, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "4303:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 359, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "4273:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$787_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4285:10:1", + "memberName": "sortTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "4273:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", + "typeString": "function (address,address) pure returns (address,address)" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4273:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4252:58:1" + }, + { + "assignments": [ + 366 + ], + "declarations": [ + { + "constant": false, + "id": 366, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "4333:9:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "4325:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 372, + "initialValue": { + "baseExpression": { + "id": 367, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "4345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 371, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 368, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4353:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4357:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4353:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4345:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4325:34:1" + }, + { + "assignments": [ + 374, + 376 + ], + "declarations": [ + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "4383:10:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "4375:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4375:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 376, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "4403:10:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "4395:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 393, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 377, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 344, + "src": "4417:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 378, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 358, + "src": "4426:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4417:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4496:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:1", + "typeDescriptions": {} + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4496:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 390, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "4508:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 391, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4495:23:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4417:101:1", + "trueExpression": { + "components": [ + { + "id": 380, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "4453:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4464:7:1", + "typeDescriptions": {} + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4464:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 385, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4452:23:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4374:144:1" + }, + { + "documentation": "TODO: In case of multiple hops ", + "expression": { + "arguments": [ + { + "id": 398, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "4601:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 399, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "4612:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 401, + "indexExpression": { + "id": 400, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4620:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4612:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 402, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "4624:3:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 395, + "name": "_pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "4589:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 394, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "4583:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$658_$", + "typeString": "type(contract IPool)" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$658", + "typeString": "contract IPool" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4596:4:1", + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 657, + "src": "4583:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address) external" + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 404, + "nodeType": "ExpressionStatement", + "src": "4583:45:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 334, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4140:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 335, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "4144:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4149:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4158:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4144:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4140:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 406, + "initializationExpression": { + "assignments": [ + 332 + ], + "declarations": [ + { + "constant": false, + "id": 332, + "mutability": "mutable", + "name": "i", + "nameLocation": "4137:1:1", + "nodeType": "VariableDeclaration", + "scope": 406, + "src": "4132:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 331, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4132:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 333, + "nodeType": "VariableDeclarationStatement", + "src": "4132:6:1" + }, + "loopExpression": { + "expression": { + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4161:3:1", + "subExpression": { + "id": 340, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4161:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 342, + "nodeType": "ExpressionStatement", + "src": "4161:3:1" + }, + "nodeType": "ForStatement", + "src": "4127:513:1" + } + ] + }, + "id": 408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "3981:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 321, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4014:7:1", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "3997:24:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 319, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 320, + "nodeType": "ArrayTypeName", + "src": "3997:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 324, + "mutability": "mutable", + "name": "path", + "nameLocation": "4049:4:1", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "4032:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 323, + "nodeType": "ArrayTypeName", + "src": "4032:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 326, + "mutability": "mutable", + "name": "_pair", + "nameLocation": "4072:5:1", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "4064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 328, + "mutability": "mutable", + "name": "_to", + "nameLocation": "4096:3:1", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "4088:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3986:120:1" + }, + "returnParameters": { + "id": 330, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:1" + }, + "scope": 595, + "src": "3972:675:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 478, + "nodeType": "Block", + "src": "4899:392:1", + "statements": [ + { + "assignments": [ + 423 + ], + "declarations": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "pair", + "nameLocation": "4918:4:1", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "4910:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 435, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 428, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 430, + "indexExpression": { + "hexValue": "30", + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 431, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4973:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 433, + "indexExpression": { + "hexValue": "31", + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4978:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4973:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 425, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 92, + "src": "4934:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 424, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 616, + "src": "4925:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$616_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$616", + "typeString": "contract IFactory" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4950:13:1", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 606, + "src": "4925:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4910:71:1" + }, + { + "expression": { + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "4994:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 438, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5018:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 439, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 410, + "src": "5024:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 440, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "5034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 437, + "name": "getAmountsOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "5004:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5004:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4994:45:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "4994:45:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 444, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "5054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 449, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 445, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "5062:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5070:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5062:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5062:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5054:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 450, + "name": "amountOutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "5084:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 455, + "nodeType": "IfStatement", + "src": "5050:113:1", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 452, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "5118:43:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5118:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 454, + "nodeType": "RevertStatement", + "src": "5111:52:1" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 462, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5205:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5209:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5205:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 464, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5217:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 465, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "5223:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 467, + "indexExpression": { + "hexValue": "30", + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5223:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 457, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "5183:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 459, + "indexExpression": { + "hexValue": "30", + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5183:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 456, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "5176:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$77_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$77", + "typeString": "contract IERC20" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5192:12:1", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 76, + "src": "5176:28:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "5176:58:1" + }, + { + "expression": { + "arguments": [ + { + "id": 471, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "5251:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 472, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "5260:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 473, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5266:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 474, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5272:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5276:6:1", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5272:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 470, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "5245:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[] memory,address[] memory,address,address)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "5245:38:1" + } + ] + }, + "functionSelector": "86818f26", + "id": 479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "4664:24:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4704:8:1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4699:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4699:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 412, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4728:12:1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4723:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 415, + "mutability": "mutable", + "name": "path", + "nameLocation": "4770:4:1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4751:23:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4751:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 414, + "nodeType": "ArrayTypeName", + "src": "4751:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4688:93:1" + }, + "returnParameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4875:7:1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "4861:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 418, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4861:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 419, + "nodeType": "ArrayTypeName", + "src": "4861:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4817:76:1" + }, + "scope": 595, + "src": "4655:636:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "5429:265:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 491, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 481, + "src": "5448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5448:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54", + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5461:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + }, + "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + } + ], + "id": 490, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5440:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5440:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 496, + "nodeType": "ExpressionStatement", + "src": "5440:65:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 498, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 483, + "src": "5538:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5549:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5538:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 501, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "5554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5565:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5554:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5538:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5581:42:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 497, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5516:118:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 507, + "nodeType": "ExpressionStatement", + "src": "5516:118:1" + }, + { + "expression": { + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 508, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 488, + "src": "5645:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 509, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 481, + "src": "5656:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 510, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "5666:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5656:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 512, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5655:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 513, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 483, + "src": "5678:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5655:31:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5645:41:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 516, + "nodeType": "ExpressionStatement", + "src": "5645:41:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "5308:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 481, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "5329:7:1", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "5324:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 480, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5324:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 483, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "5352:8:1", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "5347:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5347:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 485, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "5376:8:1", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "5371:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 484, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5371:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5313:78:1" + }, + "returnParameters": { + "id": 489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 488, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "5420:7:1", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "5415:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:14:1" + }, + "scope": 595, + "src": "5299:395:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 593, + "nodeType": "Block", + "src": "5923:453:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 532, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 525, + "src": "5942:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5947:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5942:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "32", + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5957:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5942:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5960:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + }, + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + } + ], + "id": 531, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:59:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 538, + "nodeType": "ExpressionStatement", + "src": "5934:59:1" + }, + { + "expression": { + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 539, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "6004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 543, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 525, + "src": "6025:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6030:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6025:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6014:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6018:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 541, + "nodeType": "ArrayTypeName", + "src": "6018:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6014:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "6004:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "6004:33:1" + }, + { + "expression": { + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 548, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "6048:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 550, + "indexExpression": { + "hexValue": "30", + "id": 549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6048:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 551, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6061:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6048:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 553, + "nodeType": "ExpressionStatement", + "src": "6048:21:1" + }, + { + "body": { + "id": 591, + "nodeType": "Block", + "src": "6119:250:1", + "statements": [ + { + "assignments": [ + 567, + 569 + ], + "declarations": [ + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "6140:9:1", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "6135:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 566, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6135:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 569, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "6156:10:1", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "6151:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 568, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6151:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 575, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 571, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "6176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 570, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "6170:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$658_$", + "typeString": "type(contract IPool)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$658", + "typeString": "contract IPool" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6182:16:1", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 648, + "src": "6170:28:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6134:66:1" + }, + { + "expression": { + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 576, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "6215:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 580, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 577, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "6223:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6227:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6223:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6215:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 583, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "6275:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 585, + "indexExpression": { + "id": 584, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "6283:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6275:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 586, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "6304:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 587, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 569, + "src": "6332:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 581, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "6232:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$787_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6244:12:1", + "memberName": "getAmountOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 786, + "src": "6232:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6232:125:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6215:142:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 590, + "nodeType": "ExpressionStatement", + "src": "6215:142:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 557, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "6093:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 558, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 525, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6102:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6097:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6111:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6097:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6093:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 592, + "initializationExpression": { + "assignments": [ + 555 + ], + "declarations": [ + { + "constant": false, + "id": 555, + "mutability": "mutable", + "name": "i", + "nameLocation": "6090:1:1", + "nodeType": "VariableDeclaration", + "scope": 592, + "src": "6085:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 554, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6085:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 556, + "nodeType": "VariableDeclarationStatement", + "src": "6085:6:1" + }, + "loopExpression": { + "expression": { + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6114:3:1", + "subExpression": { + "id": 563, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "6114:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 565, + "nodeType": "ExpressionStatement", + "src": "6114:3:1" + }, + "nodeType": "ForStatement", + "src": "6080:289:1" + } + ] + }, + "functionSelector": "bb7b9c76", + "id": 594, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "5779:13:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 520, + "mutability": "mutable", + "name": "pair", + "nameLocation": "5811:4:1", + "nodeType": "VariableDeclaration", + "scope": 594, + "src": "5803:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5803:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "5831:8:1", + "nodeType": "VariableDeclaration", + "scope": 594, + "src": "5826:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5826:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 525, + "mutability": "mutable", + "name": "path", + "nameLocation": "5867:4:1", + "nodeType": "VariableDeclaration", + "scope": 594, + "src": "5850:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5850:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 524, + "nodeType": "ArrayTypeName", + "src": "5850:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5792:86:1" + }, + "returnParameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "5914:7:1", + "nodeType": "VariableDeclaration", + "scope": 594, + "src": "5900:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5900:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 528, + "nodeType": "ArrayTypeName", + "src": "5900:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5899:23:1" + }, + "scope": 595, + "src": "5770:606:1", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 596, + "src": "471:5908:1", + "usedErrors": [ + 86, + 88, + 682, + 684 + ], + "usedEvents": [] + } + ], + "src": "33:6346:1" + }, + "id": 1 + }, + "contracts/core/interfaces/IFactory.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "exportedSymbols": { + "IFactory": [ + 616 + ] + }, + "id": 617, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 597, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IFactory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 616, + "linearizedBaseContracts": [ + 616 + ], + "name": "IFactory", + "nameLocation": "70:8:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4a70f02e", + "id": 606, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "95:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 599, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "127:6:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "119:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "144:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "108:57:2" + }, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "184:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "184:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "183:9:2" + }, + "scope": 616, + "src": "86:107:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e3433615", + "id": 615, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "210:10:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 608, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "239:6:2", + "nodeType": "VariableDeclaration", + "scope": 615, + "src": "231:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 610, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "264:6:2", + "nodeType": "VariableDeclaration", + "scope": 615, + "src": "256:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "220:57:2" + }, + "returnParameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "poolPair", + "nameLocation": "304:8:2", + "nodeType": "VariableDeclaration", + "scope": 615, + "src": "296:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "295:18:2" + }, + "scope": 616, + "src": "201:113:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 617, + "src": "60:257:2", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:284:2" + }, + "id": 2 + }, + "contracts/core/interfaces/IPool.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "exportedSymbols": { + "IPool": [ + 658 + ] + }, + "id": 659, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 618, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 658, + "linearizedBaseContracts": [ + 658 + ], + "name": "IPool", + "nameLocation": "70:5:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "f09a4016", + "id": 625, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "189:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 620, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "202:7:3", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "194:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "194:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "219:7:3", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "211:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "211:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "193:34:3" + }, + "returnParameters": { + "id": 624, + "nodeType": "ParameterList", + "parameters": [], + "src": "236:0:3" + }, + "scope": 658, + "src": "180:57:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "254:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "_to", + "nameLocation": "267:3:3", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "259:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "259:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "258:13:3" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 630, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "290:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "290:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "289:9:3" + }, + "scope": 658, + "src": "245:54:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "74a0f94b", + "id": 641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "316:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 634, + "mutability": "mutable", + "name": "to", + "nameLocation": "352:2:3", + "nodeType": "VariableDeclaration", + "scope": 641, + "src": "344:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "333:28:3" + }, + "returnParameters": { + "id": 640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "388:7:3", + "nodeType": "VariableDeclaration", + "scope": 641, + "src": "380:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "405:7:3", + "nodeType": "VariableDeclaration", + "scope": 641, + "src": "397:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "397:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:34:3" + }, + "scope": 658, + "src": "307:107:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b9cf5005", + "id": 648, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "431:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:3" + }, + "returnParameters": { + "id": 647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 648, + "src": "473:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 646, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 648, + "src": "482:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:18:3" + }, + "scope": 658, + "src": "422:69:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6d9a640a", + "id": 657, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "508:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 650, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "531:10:3", + "nodeType": "VariableDeclaration", + "scope": 657, + "src": "523:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 652, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "560:10:3", + "nodeType": "VariableDeclaration", + "scope": 657, + "src": "552:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "552:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 654, + "mutability": "mutable", + "name": "to", + "nameLocation": "589:2:3", + "nodeType": "VariableDeclaration", + "scope": 657, + "src": "581:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "581:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "512:112:3" + }, + "returnParameters": { + "id": 656, + "nodeType": "ParameterList", + "parameters": [], + "src": "633:0:3" + }, + "scope": 658, + "src": "499:135:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 659, + "src": "60:577:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:604:3" + }, + "id": 3 + }, + "contracts/core/interfaces/IWedu.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "exportedSymbols": { + "IWEDU": [ + 678 + ] + }, + "id": 679, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 660, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IWEDU", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 678, + "linearizedBaseContracts": [ + 678 + ], + "name": "IWEDU", + "nameLocation": "70:5:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 663, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "92:7:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "99:2:4" + }, + "returnParameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [], + "src": "118:0:4" + }, + "scope": 678, + "src": "83:36:4", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 672, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "136:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 665, + "mutability": "mutable", + "name": "to", + "nameLocation": "153:2:4", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "145:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 667, + "mutability": "mutable", + "name": "value", + "nameLocation": "162:5:4", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "157:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 666, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "157:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "144:24:4" + }, + "returnParameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 670, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "187:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 669, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "187:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "186:6:4" + }, + "scope": 678, + "src": "127:66:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e1a7d4d", + "id": 677, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "210:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "219:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "219:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:6:4" + }, + "returnParameters": { + "id": 676, + "nodeType": "ParameterList", + "parameters": [], + "src": "233:0:4" + }, + "scope": 678, + "src": "201:33:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 679, + "src": "60:177:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:204:4" + }, + "id": 4 + }, + "contracts/core/libraries/Library.sol": { + "ast": { + "absolutePath": "contracts/core/libraries/Library.sol", + "exportedSymbols": { + "DefiLibrary": [ + 787 + ], + "PoolFactory__IdenticalAddress": [ + 682 + ], + "PoolFactory__ZeroAddress": [ + 684 + ] + }, + "id": 788, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 680, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "errorSelector": "4bea99d9", + "id": 682, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "66:29:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [], + "src": "95:2:5" + }, + "src": "60:38:5" + }, + { + "errorSelector": "74b959e9", + "id": 684, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "106:24:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 683, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:5" + }, + "src": "100:33:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DefiLibrary", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 787, + "linearizedBaseContracts": [ + 787 + ], + "name": "DefiLibrary", + "nameLocation": "145:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 727, + "nodeType": "Block", + "src": "397:341:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 695, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "412:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 696, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 688, + "src": "422:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 701, + "nodeType": "IfStatement", + "src": "408:60:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 698, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 682, + "src": "437:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "437:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 700, + "nodeType": "RevertStatement", + "src": "430:38:5" + } + }, + { + "expression": { + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 702, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 691, + "src": "480:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 703, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "488:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 704, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "479:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 705, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "498:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 706, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 688, + "src": "507:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "498:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 711, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 688, + "src": "562:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 712, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "570:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 713, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "561:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "498:79:5", + "trueExpression": { + "components": [ + { + "id": 708, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "530:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 709, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 688, + "src": "538:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 710, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "529:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "src": "479:98:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 716, + "nodeType": "ExpressionStatement", + "src": "479:98:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 717, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 691, + "src": "675:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "685:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:5", + "typeDescriptions": {} + } + }, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "685:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "675:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 726, + "nodeType": "IfStatement", + "src": "671:59:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 723, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 684, + "src": "704:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 725, + "nodeType": "RevertStatement", + "src": "697:33:5" + } + } + ] + }, + "id": 728, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sortTokens", + "nameLocation": "274:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "303:6:5", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "295:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "328:6:5", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "320:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "284:57:5" + }, + "returnParameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "token0", + "nameLocation": "373:6:5", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "365:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "token1", + "nameLocation": "389:6:5", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "381:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "364:32:5" + }, + "scope": 787, + "src": "265:473:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 785, + "nodeType": "Block", + "src": "1077:437:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 740, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 730, + "src": "1096:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1096:12:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:45:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 739, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1088:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1088:68:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 745, + "nodeType": "ExpressionStatement", + "src": "1088:68:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 747, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "1189:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1189:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 750, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "1206:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1189:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:42:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 746, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1167:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1167:121:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 756, + "nodeType": "ExpressionStatement", + "src": "1167:121:5" + }, + { + "assignments": [ + 758 + ], + "declarations": [ + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "amountInWithFee", + "nameLocation": "1304:15:5", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "1299:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1299:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 762, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 759, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 730, + "src": "1322:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "393937", + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:3:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_997_by_1", + "typeString": "int_const 997" + }, + "value": "997" + }, + "src": "1322:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1299:37:5" + }, + { + "assignments": [ + 764 + ], + "declarations": [ + { + "constant": false, + "id": 764, + "mutability": "mutable", + "name": "numerator", + "nameLocation": "1352:9:5", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "1347:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 763, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1347:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 768, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 765, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "1364:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 766, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "1382:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1364:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1347:45:5" + }, + { + "assignments": [ + 770 + ], + "declarations": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1408:11:5", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "1403:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 778, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 771, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "1423:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31303030", + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1435:4:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "1423:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 774, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1422:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "id": 775, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "1444:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 776, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1443:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1422:38:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1403:57:5" + }, + { + "expression": { + "id": 783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 779, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 737, + "src": "1471:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 780, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 764, + "src": "1483:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 781, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "1495:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1471:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 784, + "nodeType": "ExpressionStatement", + "src": "1471:35:5" + } + ] + }, + "id": 786, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "943:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 730, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "971:8:5", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "966:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 729, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "966:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "995:9:5", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "990:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 731, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "990:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "1020:10:5", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "1015:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 733, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1015:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "955:82:5" + }, + "returnParameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 737, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "1066:9:5", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "1061:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 736, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:16:5" + }, + "scope": 787, + "src": "934:580:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 788, + "src": "137:1380:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:1484:5" + }, + "id": 5 + } + }, + "contracts": { + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "contracts/core/LiquidityProvider.sol": { + "LiquidityProvider": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_110": { + "entryPoint": null, + "id": 110, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 273, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 167, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 224, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1355:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:6" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:6", + "type": "" + } + ], + "src": "7:75:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:6" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:6" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:6", + "type": "" + } + ], + "src": "334:126:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:6", + "type": "" + } + ], + "src": "466:96:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:6" + }, + "nodeType": "YulIf", + "src": "621:63:6" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:6", + "type": "" + } + ], + "src": "568:122:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:6" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:6", + "type": "" + } + ], + "src": "696:143:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "939:413:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "985:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "987:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "987:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "987:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "960:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "969:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "956:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "956:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "981:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "952:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "952:32:6" + }, + "nodeType": "YulIf", + "src": "949:119:6" + }, + { + "nodeType": "YulBlock", + "src": "1078:128:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1093:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1107:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1122:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1179:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1164:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1164:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1188:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1132:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "1132:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1122:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1216:129:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1231:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1235:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1261:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1307:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1318:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1303:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1303:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1327:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1271:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "1271:64:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1261:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "901:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "912:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "924:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "932:6:6", + "type": "" + } + ], + "src": "845:507:6" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:1:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:6;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addLiquidity_243": { + "entryPoint": 1933, + "id": 243, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@_swap_408": { + "entryPoint": 2677, + "id": 408, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addLiquidity_318": { + "entryPoint": 216, + "id": 318, + "parameterSlots": 6, + "returnSlots": 3 + }, + "@getAmountOut_786": { + "entryPoint": 3071, + "id": 786, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getAmountsOut_594": { + "entryPoint": 1503, + "id": 594, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@quote_518": { + "entryPoint": 3305, + "id": 518, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sortTokens_728": { + "entryPoint": 3484, + "id": 728, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@swapExactTokensForTokens_479": { + "entryPoint": 802, + "id": 479, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 5088, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4160, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 5244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 5337, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 5109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": { + "entryPoint": 3934, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4921, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5265, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 5358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256_fromMemory": { + "entryPoint": 5719, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4246, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6542, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4406, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4075, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5310, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 5047, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5154, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6577, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 5954, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3766, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 6414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 6301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3786, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3880, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4650, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "increment_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 5495, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 6367, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4603, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4155, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": { + "entryPoint": 5611, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": { + "entryPoint": 6155, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": { + "entryPoint": 6463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": { + "entryPoint": 6009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3836, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 5221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3890, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:20048:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:6", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:6" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:6", + "type": "" + } + ], + "src": "7:75:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:6" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:6" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:6", + "type": "" + } + ], + "src": "334:126:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:6", + "type": "" + } + ], + "src": "466:96:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:6" + }, + "nodeType": "YulIf", + "src": "621:63:6" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:6", + "type": "" + } + ], + "src": "568:122:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:6" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:6", + "type": "" + } + ], + "src": "696:139:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:6", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:6", + "type": "" + } + ], + "src": "841:77:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:6" + }, + "nodeType": "YulIf", + "src": "977:63:6" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:6", + "type": "" + } + ], + "src": "924:122:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:6" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:6", + "type": "" + } + ], + "src": "1052:139:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1348:906:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1395:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1397:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "1397:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "1397:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1369:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1378:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1365:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1365:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1390:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1361:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1361:33:6" + }, + "nodeType": "YulIf", + "src": "1358:120:6" + }, + { + "nodeType": "YulBlock", + "src": "1488:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1503:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1507:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1532:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1567:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1578:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1563:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1563:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1587:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1542:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1542:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1532:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1615:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1630:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1644:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1634:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1660:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1695:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1706:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1691:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1691:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1670:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1670:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1660:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1743:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1758:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1762:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1788:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1823:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1834:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1819:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1819:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1843:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1798:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1798:53:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1788:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1871:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1886:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1900:2:6", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1890:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1916:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1951:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1962:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "1947:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1971:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1926:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "1926:53:6" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1916:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1999:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2014:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2028:3:6", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2018:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2045:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2080:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2091:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2076:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2076:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2100:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2055:53:6" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2045:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2128:119:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2143:17:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2157:3:6", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2147:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2174:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2220:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2205:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2205:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2229:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2184:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "2184:53:6" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2174:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1278:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1289:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1301:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1309:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1317:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1325:6:6", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1333:6:6", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1341:6:6", + "type": "" + } + ], + "src": "1197:1057:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2325:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2342:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2365:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2347:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "2347:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2335:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2335:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2335:37:6" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2313:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2320:3:6", + "type": "" + } + ], + "src": "2260:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2538:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2548:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2560:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2556:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2556:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2548:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2628:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2641:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2637:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2637:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2584:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "2584:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2584:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2709:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2722:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2733:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2718:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2665:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "2665:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2665:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2791:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2815:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "2800:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2747:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "2747:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2747:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2494:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2506:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2514:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2522:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2533:4:6", + "type": "" + } + ], + "src": "2384:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2921:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2938:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2941:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2931:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "2931:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "2931:12:6" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2832:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3044:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3054:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:12:6" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2955:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3177:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3177:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3177:12:6" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "3078:117:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3308:478:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3357:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3359:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "3359:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3359:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3336:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3344:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3332:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3332:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3351:3:6" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3328:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3328:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3321:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "3321:35:6" + }, + "nodeType": "YulIf", + "src": "3318:122:6" + }, + { + "nodeType": "YulAssignment", + "src": "3449:30:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3472:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3459:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "3459:20:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3449:6:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3522:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3524:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "3524:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3524:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3494:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3502:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3491:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "3491:30:6" + }, + "nodeType": "YulIf", + "src": "3488:117:6" + }, + { + "nodeType": "YulAssignment", + "src": "3614:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3630:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3638:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3626:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3626:17:6" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3614:8:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3699:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "3699:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3699:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3662:8:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3676:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3684:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3672:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3672:17:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3658:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3658:32:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3692:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3655:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "3655:41:6" + }, + "nodeType": "YulIf", + "src": "3652:128:6" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3275:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3283:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "3291:8:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3301:6:6", + "type": "" + } + ], + "src": "3218:568:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:714:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3973:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3975:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "3975:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "3975:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3948:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3944:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3944:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3969:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3940:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "3940:32:6" + }, + "nodeType": "YulIf", + "src": "3937:119:6" + }, + { + "nodeType": "YulBlock", + "src": "4066:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4081:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4095:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4085:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4110:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4145:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4156:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4141:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4141:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4165:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4120:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4120:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4110:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4193:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4208:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4222:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4212:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4238:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4273:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4284:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4269:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4269:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4293:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4248:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "4248:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4238:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4321:313:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4336:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4367:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4378:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4363:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4350:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "4350:32:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4340:6:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4429:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4431:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "4431:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4431:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4401:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4398:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "4398:30:6" + }, + "nodeType": "YulIf", + "src": "4395:117:6" + }, + { + "nodeType": "YulAssignment", + "src": "4526:98:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4596:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4607:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4592:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4592:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4616:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "4544:47:6" + }, + "nodeType": "YulFunctionCall", + "src": "4544:80:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4526:6:6" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4534:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3873:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3884:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3896:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3904:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3912:6:6", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3920:6:6", + "type": "" + } + ], + "src": "3792:849:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4721:40:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4732:22:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4748:5:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4742:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "4742:12:6" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4732:6:6" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4704:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4714:6:6", + "type": "" + } + ], + "src": "4647:114:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4878:73:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4895:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4900:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4888:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "4888:19:6" + }, + "nodeType": "YulExpressionStatement", + "src": "4888:19:6" + }, + { + "nodeType": "YulAssignment", + "src": "4916:29:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4935:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4931:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "4931:14:6" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4916:11:6" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4850:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4855:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4866:11:6", + "type": "" + } + ], + "src": "4767:184:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5029:60:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5039:11:6", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5047:3:6" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5039:4:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5060:22:6", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5072:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5077:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5068:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5068:14:6" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5060:4:6" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5016:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5024:4:6", + "type": "" + } + ], + "src": "4957:132:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5150:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5167:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5190:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5172:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "5172:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5160:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "5160:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5160:37:6" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5138:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5145:3:6", + "type": "" + } + ], + "src": "5095:108:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5289:99:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5333:6:6" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5341:3:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5299:33:6" + }, + "nodeType": "YulFunctionCall", + "src": "5299:46:6" + }, + "nodeType": "YulExpressionStatement", + "src": "5299:46:6" + }, + { + "nodeType": "YulAssignment", + "src": "5354:28:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5372:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5377:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5368:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5368:14:6" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5354:10:6" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5262:6:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5270:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5278:10:6", + "type": "" + } + ], + "src": "5209:179:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5469:38:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5479:22:6", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5491:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5496:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5487:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "5487:14:6" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "5479:4:6" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5456:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "5464:4:6", + "type": "" + } + ], + "src": "5394:113:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5667:608:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5677:68:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5739:5:6" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5691:47:6" + }, + "nodeType": "YulFunctionCall", + "src": "5691:54:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5681:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5754:93:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5835:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5840:6:6" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5761:73:6" + }, + "nodeType": "YulFunctionCall", + "src": "5761:86:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5754:3:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5856:71:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5921:5:6" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5871:49:6" + }, + "nodeType": "YulFunctionCall", + "src": "5871:56:6" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5860:7:6", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5936:21:6", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5950:7:6" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5940:6:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:224:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6040:34:6", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6067:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6061:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "6061:13:6" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6044:13:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6087:70:6", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "6138:13:6" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6153:3:6" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6094:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "6094:63:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6087:3:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6170:70:6", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6233:6:6" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6180:52:6" + }, + "nodeType": "YulFunctionCall", + "src": "6180:60:6" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6170:6:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5988:1:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5991:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5985:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "5985:13:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5999:18:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6001:14:6", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6010:1:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6013:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6006:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6006:9:6" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6001:1:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5970:14:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5972:10:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5981:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5976:1:6", + "type": "" + } + ] + } + ] + }, + "src": "5966:284:6" + }, + { + "nodeType": "YulAssignment", + "src": "6259:10:6", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6266:3:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6259:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5646:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5653:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5662:3:6", + "type": "" + } + ], + "src": "5543:732:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6429:225:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6439:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6451:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6447:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6447:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6439:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6486:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6497:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6482:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6482:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6505:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6501:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6501:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6475:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6475:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "6531:116:6", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6633:6:6" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6642:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6539:93:6" + }, + "nodeType": "YulFunctionCall", + "src": "6539:108:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6531:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6401:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6413:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6424:4:6", + "type": "" + } + ], + "src": "6281:373:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:54:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6718:38:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6736:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6743:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6732:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6732:14:6" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6752:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6748:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6748:7:6" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6728:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "6728:28:6" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6718:6:6" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6691:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6701:6:6", + "type": "" + } + ], + "src": "6660:102:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6796:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6813:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6816:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6806:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6806:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6806:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6910:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6913:4:6", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6903:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6903:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6903:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6937:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6927:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "6927:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "6927:15:6" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "6768:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6997:238:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7007:58:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7029:6:6" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7059:4:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7037:21:6" + }, + "nodeType": "YulFunctionCall", + "src": "7037:27:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7025:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7025:40:6" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7011:10:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7176:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7178:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "7178:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7178:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7119:10:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7131:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7116:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "7116:34:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7155:10:6" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7167:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7152:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "7152:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7113:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "7113:62:6" + }, + "nodeType": "YulIf", + "src": "7110:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7214:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7218:10:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7207:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7207:22:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7207:22:6" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6983:6:6", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "6991:4:6", + "type": "" + } + ], + "src": "6954:281:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7282:88:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7292:30:6", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7302:18:6" + }, + "nodeType": "YulFunctionCall", + "src": "7302:20:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7292:6:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7351:6:6" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7359:4:6" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7331:19:6" + }, + "nodeType": "YulFunctionCall", + "src": "7331:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7331:33:6" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7266:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7275:6:6", + "type": "" + } + ], + "src": "7241:129:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7458:229:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7563:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7565:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "7565:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7565:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7535:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7543:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7532:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "7532:30:6" + }, + "nodeType": "YulIf", + "src": "7529:56:6" + }, + { + "nodeType": "YulAssignment", + "src": "7595:25:6", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7607:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7615:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7603:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7603:17:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7595:4:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:23:6", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7669:4:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7675:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7665:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7665:15:6" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7657:4:6" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7442:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7453:4:6", + "type": "" + } + ], + "src": "7376:311:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7812:608:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7822:90:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:6" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7847:56:6" + }, + "nodeType": "YulFunctionCall", + "src": "7847:64:6" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "7831:15:6" + }, + "nodeType": "YulFunctionCall", + "src": "7831:81:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7822:5:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7921:16:6", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7932:5:6" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "7925:3:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7954:5:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7961:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7947:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "7947:21:6" + }, + "nodeType": "YulExpressionStatement", + "src": "7947:21:6" + }, + { + "nodeType": "YulAssignment", + "src": "7977:23:6", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7988:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7995:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "7984:16:6" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "7977:3:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8010:44:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8028:6:6" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8040:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8048:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8036:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8036:17:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8024:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8024:30:6" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "8014:6:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8082:103:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8096:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "8096:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8096:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8069:6:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8077:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8066:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "8066:15:6" + }, + "nodeType": "YulIf", + "src": "8063:122:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8270:144:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8285:21:6", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8303:3:6" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "8289:10:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8327:3:6" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "8353:10:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8365:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8332:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "8332:37:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8320:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8320:50:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8320:50:6" + }, + { + "nodeType": "YulAssignment", + "src": "8383:21:6", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8394:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8399:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8390:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8390:14:6" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8383:3:6" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8223:3:6" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8228:6:6" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8220:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "8220:15:6" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8236:25:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8238:21:6", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8249:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8254:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8245:14:6" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8238:3:6" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8198:21:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8200:17:6", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8211:6:6" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8204:3:6", + "type": "" + } + ] + } + ] + }, + "src": "8194:220:6" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7782:6:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7790:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7798:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7806:5:6", + "type": "" + } + ], + "src": "7710:710:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8520:293:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8569:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8571:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "8571:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8571:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8548:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8556:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8544:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8544:17:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8563:3:6" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8540:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8540:27:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8533:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "8533:35:6" + }, + "nodeType": "YulIf", + "src": "8530:122:6" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8661:34:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8688:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8675:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "8675:20:6" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8665:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8704:103:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8780:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8776:17:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8795:6:6" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8803:3:6" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8713:62:6" + }, + "nodeType": "YulFunctionCall", + "src": "8713:94:6" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8704:5:6" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8498:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8506:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8514:5:6", + "type": "" + } + ], + "src": "8443:370:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8944:704:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8990:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8992:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "8992:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "8992:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8965:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8974:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8961:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8961:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8957:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "8957:32:6" + }, + "nodeType": "YulIf", + "src": "8954:119:6" + }, + { + "nodeType": "YulBlock", + "src": "9083:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9098:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9112:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9102:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9127:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9162:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9173:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9158:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9158:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9182:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9137:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "9137:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9127:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9210:118:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9225:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9239:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9229:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9255:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9290:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9301:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9286:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9286:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9310:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9265:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "9265:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9255:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9338:303:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9353:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9384:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9380:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9380:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9367:12:6" + }, + "nodeType": "YulFunctionCall", + "src": "9367:32:6" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9357:6:6", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9446:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9448:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "9448:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9448:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9418:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9426:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9415:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "9415:30:6" + }, + "nodeType": "YulIf", + "src": "9412:117:6" + }, + { + "nodeType": "YulAssignment", + "src": "9543:88:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9603:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9614:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9599:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9599:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9623:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9553:45:6" + }, + "nodeType": "YulFunctionCall", + "src": "9553:78:6" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9543:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8898:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8909:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8921:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8929:6:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8937:6:6", + "type": "" + } + ], + "src": "8819:829:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9719:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9736:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9759:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9741:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "9741:24:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "9729:37:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:37:6" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9707:5:6", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9714:3:6", + "type": "" + } + ], + "src": "9654:118:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9904:206:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9914:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9926:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9937:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9922:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "9922:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9914:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9994:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10007:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10003:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10003:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9950:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "9950:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "9950:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10075:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10088:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10084:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10084:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10031:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "10031:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10031:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9868:9:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9880:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9888:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9899:4:6", + "type": "" + } + ], + "src": "9778:332:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10179:80:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10189:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10204:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10198:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "10198:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10189:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10247:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "10220:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "10220:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10220:33:6" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10157:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10165:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10173:5:6", + "type": "" + } + ], + "src": "10116:143:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10342:274:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10388:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10390:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "10390:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10390:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10363:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10372:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10359:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10359:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10384:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10355:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10355:32:6" + }, + "nodeType": "YulIf", + "src": "10352:119:6" + }, + { + "nodeType": "YulBlock", + "src": "10481:128:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10496:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10510:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10500:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10525:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10571:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10582:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10567:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10567:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10591:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "10535:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "10535:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10525:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10312:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10323:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10335:6:6", + "type": "" + } + ], + "src": "10265:351:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10776:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10786:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10798:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10809:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10794:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10794:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10786:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10866:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10879:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10890:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10875:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10875:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10822:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "10822:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10822:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10947:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10960:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10971:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10956:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "10956:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10903:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "10903:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10903:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11029:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11042:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11053:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11038:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11038:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10985:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "10985:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "10985:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10732:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10744:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10752:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10760:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10771:4:6", + "type": "" + } + ], + "src": "10622:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11112:48:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11122:32:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11147:5:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11140:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11140:13:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11133:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11133:21:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11122:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11094:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11104:7:6", + "type": "" + } + ], + "src": "11070:90:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11206:76:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11260:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11269:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11272:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11262:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11262:12:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11262:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11229:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11251:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11236:14:6" + }, + "nodeType": "YulFunctionCall", + "src": "11236:21:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11226:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "11226:32:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11219:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "11219:40:6" + }, + "nodeType": "YulIf", + "src": "11216:60:6" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11199:5:6", + "type": "" + } + ], + "src": "11166:116:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11348:77:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11358:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11373:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11367:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "11367:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11358:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11413:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "11389:23:6" + }, + "nodeType": "YulFunctionCall", + "src": "11389:30:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11389:30:6" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11326:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11334:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11342:5:6", + "type": "" + } + ], + "src": "11288:137:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11505:271:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11551:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11553:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "11553:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11553:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11526:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11535:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11522:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11522:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11547:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11518:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11518:32:6" + }, + "nodeType": "YulIf", + "src": "11515:119:6" + }, + { + "nodeType": "YulBlock", + "src": "11644:125:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11659:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11673:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11663:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11688:71:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11731:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11742:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11727:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11727:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11751:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11698:28:6" + }, + "nodeType": "YulFunctionCall", + "src": "11698:61:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11688:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11475:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11486:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11498:6:6", + "type": "" + } + ], + "src": "11431:345:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11880:124:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11890:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11902:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11913:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11898:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11898:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11890:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11970:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11983:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11994:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11979:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "11979:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11926:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "11926:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "11926:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11852:9:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11864:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11875:4:6", + "type": "" + } + ], + "src": "11782:222:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:80:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12098:6:6" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12092:5:6" + }, + "nodeType": "YulFunctionCall", + "src": "12092:13:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12141:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "12114:26:6" + }, + "nodeType": "YulFunctionCall", + "src": "12114:33:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12114:33:6" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:6", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:6", + "type": "" + } + ], + "src": "12010:143:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12236:274:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12282:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12284:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "12284:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12284:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12257:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12266:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12253:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12253:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12278:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12249:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12249:32:6" + }, + "nodeType": "YulIf", + "src": "12246:119:6" + }, + { + "nodeType": "YulBlock", + "src": "12375:128:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12390:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12404:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12394:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12419:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12465:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12461:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12461:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12485:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "12429:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "12429:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12419:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12206:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12217:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12229:6:6", + "type": "" + } + ], + "src": "12159:351:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12544:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12561:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12564:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12554:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12554:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12554:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12658:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12661:4:6", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12651:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12651:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12651:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12682:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12685:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12675:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "12675:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12675:15:6" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "12516:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12768:263:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12814:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12816:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "12816:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "12816:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12789:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12798:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12785:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12785:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12781:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12781:32:6" + }, + "nodeType": "YulIf", + "src": "12778:119:6" + }, + { + "nodeType": "YulBlock", + "src": "12907:117:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12922:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12936:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12926:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12951:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12986:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12997:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12982:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "12982:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13006:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12961:20:6" + }, + "nodeType": "YulFunctionCall", + "src": "12961:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12951:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12738:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12749:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12761:6:6", + "type": "" + } + ], + "src": "12702:329:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13065:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13085:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13075:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13075:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13075:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13179:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13182:4:6", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13172:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13172:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13172:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13196:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13196:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13196:15:6" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "13037:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13268:149:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13278:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13301:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13283:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "13283:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13278:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13312:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13335:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13317:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "13317:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13312:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13346:17:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13358:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13361:1:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13354:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13354:9:6" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13346:4:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13388:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13390:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "13390:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13390:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13379:4:6" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13385:1:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13376:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "13376:11:6" + }, + "nodeType": "YulIf", + "src": "13373:37:6" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13254:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13257:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "13263:4:6", + "type": "" + } + ], + "src": "13223:194:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13519:73:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13536:3:6" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13541:6:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13529:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13529:19:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13529:19:6" + }, + { + "nodeType": "YulAssignment", + "src": "13557:29:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13576:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13581:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13572:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13572:14:6" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13557:11:6" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13491:3:6", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13496:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13507:11:6", + "type": "" + } + ], + "src": "13423:169:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:74:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:6" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:32:6", + "type": "", + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "13715:56:6" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:56:6" + } + ] + }, + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:6", + "type": "" + } + ], + "src": "13598:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13930:220:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13940:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14006:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14011:2:6", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13947:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "13947:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13940:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14112:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulIdentifier", + "src": "14023:88:6" + }, + "nodeType": "YulFunctionCall", + "src": "14023:93:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14023:93:6" + }, + { + "nodeType": "YulAssignment", + "src": "14125:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14136:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14141:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14132:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14132:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14125:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13918:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13926:3:6", + "type": "" + } + ], + "src": "13784:366:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14327:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14337:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14345:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14337:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14384:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14395:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14380:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14380:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14403:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14409:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14399:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14399:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14373:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "14373:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "14429:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14563:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14437:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "14437:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14429:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14307:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14322:4:6", + "type": "" + } + ], + "src": "14156:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14675:413:6", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14721:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14723:77:6" + }, + "nodeType": "YulFunctionCall", + "src": "14723:79:6" + }, + "nodeType": "YulExpressionStatement", + "src": "14723:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14696:7:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14705:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14692:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14692:23:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14688:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14688:32:6" + }, + "nodeType": "YulIf", + "src": "14685:119:6" + }, + { + "nodeType": "YulBlock", + "src": "14814:128:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14829:15:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14833:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14858:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14904:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14915:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14900:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "14900:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14924:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "14868:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "14868:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14858:6:6" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14952:129:6", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:16:6", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14997:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15043:9:6" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15054:6:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15039:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15039:22:6" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15063:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15007:31:6" + }, + "nodeType": "YulFunctionCall", + "src": "15007:64:6" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14997:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14637:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14648:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14660:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14668:6:6", + "type": "" + } + ], + "src": "14581:507:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15138:147:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15148:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15171:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15153:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "15153:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15148:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15182:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15205:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15187:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "15187:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15182:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15216:16:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15227:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15230:1:6" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15223:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15223:9:6" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15216:3:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15256:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15258:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "15258:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15258:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15248:1:6" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15251:3:6" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15245:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "15245:10:6" + }, + "nodeType": "YulIf", + "src": "15242:36:6" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15125:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15128:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15134:3:6", + "type": "" + } + ], + "src": "15094:191:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15334:190:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15344:33:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15371:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15353:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "15353:24:6" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15344:5:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15467:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15469:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "15469:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15469:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15392:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15399:66:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15389:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "15389:77:6" + }, + "nodeType": "YulIf", + "src": "15386:103:6" + }, + { + "nodeType": "YulAssignment", + "src": "15498:20:6", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15509:5:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15505:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15505:13:6" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "15498:3:6" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15320:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "15330:3:6", + "type": "" + } + ], + "src": "15291:233:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15558:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15575:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15578:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15568:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15568:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15568:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15672:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15675:4:6", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15665:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15665:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15665:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15696:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15699:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15689:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "15689:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15689:15:6" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "15530:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15870:288:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15880:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15892:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15903:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15888:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15888:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15880:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15960:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15973:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15984:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15969:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "15969:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15916:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "15916:71:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15916:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16041:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16054:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16065:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16050:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16050:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15997:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "15997:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "15997:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16123:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16136:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16147:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16132:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16132:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16079:43:6" + }, + "nodeType": "YulFunctionCall", + "src": "16079:72:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16079:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:6", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15838:6:6", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15846:6:6", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15854:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15865:4:6", + "type": "" + } + ], + "src": "15716:442:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16270:124:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16292:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16300:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16288:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16288:14:6" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16304:34:6", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_I" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16281:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "16281:58:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16281:58:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16360:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16368:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16356:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16356:15:6" + }, + { + "hexValue": "4e5055545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16373:13:6", + "type": "", + "value": "NPUT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16349:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "16349:38:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:38:6" + } + ] + }, + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16262:6:6", + "type": "" + } + ], + "src": "16164:230:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16546:220:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16556:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16622:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16627:2:6", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16563:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "16563:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16556:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16728:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulIdentifier", + "src": "16639:88:6" + }, + "nodeType": "YulFunctionCall", + "src": "16639:93:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16639:93:6" + }, + { + "nodeType": "YulAssignment", + "src": "16741:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16752:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16757:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16748:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16748:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16741:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16534:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16542:3:6", + "type": "" + } + ], + "src": "16400:366:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16943:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16953:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16965:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16976:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16961:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16961:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16953:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17000:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17011:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16996:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "16996:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17019:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17025:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17015:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17015:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16989:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "16989:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "16989:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "17045:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17179:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17053:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "17053:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17045:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16923:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16938:4:6", + "type": "" + } + ], + "src": "16772:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:121:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:6" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:6", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_L" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:6" + }, + { + "hexValue": "4951554944495459", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:10:6", + "type": "", + "value": "IQUIDITY" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "17382:35:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:35:6" + } + ] + }, + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:6", + "type": "" + } + ], + "src": "17197:227:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17576:220:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17586:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17652:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17657:2:6", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17593:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "17593:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17586:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17758:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulIdentifier", + "src": "17669:88:6" + }, + "nodeType": "YulFunctionCall", + "src": "17669:93:6" + }, + "nodeType": "YulExpressionStatement", + "src": "17669:93:6" + }, + { + "nodeType": "YulAssignment", + "src": "17771:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17782:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17787:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17778:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17778:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17771:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17564:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17572:3:6", + "type": "" + } + ], + "src": "17430:366:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17973:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17983:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17995:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18006:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17991:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "17991:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18030:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18041:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18026:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18026:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18049:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18055:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18045:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18045:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18019:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18019:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18019:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "18075:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18209:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18083:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "18083:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18075:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17953:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17968:4:6", + "type": "" + } + ], + "src": "17802:419:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18275:362:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18285:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18308:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18290:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "18290:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18285:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18342:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18324:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "18324:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18319:1:6" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18353:28:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18376:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18379:1:6" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "18372:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18372:9:6" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "18357:11:6", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18390:41:6", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "18419:11:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18401:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "18401:30:6" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18390:7:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18608:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18610:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "18610:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18610:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18541:1:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18534:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18534:9:6" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18564:1:6" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18571:7:6" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18580:1:6" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18567:15:6" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18561:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "18561:22:6" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "18514:2:6" + }, + "nodeType": "YulFunctionCall", + "src": "18514:83:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18494:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18494:113:6" + }, + "nodeType": "YulIf", + "src": "18491:139:6" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18258:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18261:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "18267:7:6", + "type": "" + } + ], + "src": "18227:410:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18671:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18688:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18691:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18681:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18681:88:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18681:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18785:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18788:4:6", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18778:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18778:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18778:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18809:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18812:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "18802:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18802:15:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18802:15:6" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "18643:180:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18871:143:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18881:25:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18904:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18886:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "18886:20:6" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18881:1:6" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18915:25:6", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18938:1:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18920:17:6" + }, + "nodeType": "YulFunctionCall", + "src": "18920:20:6" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18915:1:6" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18962:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "18964:16:6" + }, + "nodeType": "YulFunctionCall", + "src": "18964:18:6" + }, + "nodeType": "YulExpressionStatement", + "src": "18964:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18959:1:6" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18952:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "18952:9:6" + }, + "nodeType": "YulIf", + "src": "18949:35:6" + }, + { + "nodeType": "YulAssignment", + "src": "18994:14:6", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19003:1:6" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19006:1:6" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18999:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "18999:9:6" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "18994:1:6" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18860:1:6", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18863:1:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "18869:1:6", + "type": "" + } + ], + "src": "18829:185:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19126:122:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19148:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19156:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19144:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19144:14:6" + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19160:34:6", + "type": "", + "value": "UniswapV2DefiLibrary: INSUFFICIE" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19137:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "19137:58:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19137:58:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19216:6:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19224:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19212:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19212:15:6" + }, + { + "hexValue": "4e545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19229:11:6", + "type": "", + "value": "NT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19205:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "19205:36:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19205:36:6" + } + ] + }, + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19118:6:6", + "type": "" + } + ], + "src": "19020:228:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19400:220:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19410:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19476:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19481:2:6", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19417:58:6" + }, + "nodeType": "YulFunctionCall", + "src": "19417:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19410:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19582:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulIdentifier", + "src": "19493:88:6" + }, + "nodeType": "YulFunctionCall", + "src": "19493:93:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19493:93:6" + }, + { + "nodeType": "YulAssignment", + "src": "19595:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19606:3:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19611:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19602:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19602:12:6" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19595:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19388:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19396:3:6", + "type": "" + } + ], + "src": "19254:366:6" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19797:248:6", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19807:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19819:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19830:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19815:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19815:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19807:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19854:9:6" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19865:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19850:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19850:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19873:4:6" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19879:9:6" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19869:3:6" + }, + "nodeType": "YulFunctionCall", + "src": "19869:20:6" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19843:6:6" + }, + "nodeType": "YulFunctionCall", + "src": "19843:47:6" + }, + "nodeType": "YulExpressionStatement", + "src": "19843:47:6" + }, + { + "nodeType": "YulAssignment", + "src": "19899:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20033:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19907:124:6" + }, + "nodeType": "YulFunctionCall", + "src": "19907:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19899:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19777:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19792:4:6", + "type": "" + } + ], + "src": "19626:419:6" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "92": [ + { + "length": 32, + "start": 247 + }, + { + "length": 32, + "start": 808 + }, + { + "length": 32, + "start": 1940 + }, + { + "length": 32, + "start": 2152 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:5:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:1:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:5:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:6:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o" + }, + "methodIdentifiers": { + "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f", + "getAmountsOut(address,uint256,address[])": "bb7b9c76", + "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IFactory.sol": { + "IFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolPair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IPool.sol": { + "IPool": { + "abi": [ + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "swap(uint256,uint256,address)": "6d9a640a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IWedu.sol": { + "IWEDU": { + "abi": [ + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "deposit()": "d0e30db0", + "transfer(address,uint256)": "a9059cbb", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}" + } + }, + "contracts/core/libraries/Library.sol": { + "DefiLibrary": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:5:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/build-info/e7e96229427b7faa67d9ec35320a6b93.json b/Core uniswap/ignition/deployments/chain-11155111/build-info/e7e96229427b7faa67d9ec35320a6b93.json new file mode 100644 index 00000000..5d5f0f0c --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/build-info/e7e96229427b7faa67d9ec35320a6b93.json @@ -0,0 +1,80267 @@ +{ + "id": "e7e96229427b7faa67d9ec35320a6b93", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n" + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "contracts/core/Factory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}" + }, + "contracts/core/interfaces/IFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}" + }, + "contracts/core/interfaces/IPool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}" + }, + "contracts/core/interfaces/IWedu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}" + }, + "contracts/core/libraries/Library.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}" + }, + "contracts/core/LiquidityProvider.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}" + }, + "contracts/core/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}" + }, + "contracts/core/Pool.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}" + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(uint256 amount) public {\r\n _mint(msg.sender, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(uint256 amount) public {\r\n _mint(msg.sender, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEdutoken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n function deposit(uint256 amount) public payable {\r\n _mint(msg.sender, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2397, + "file": "contracts/core/Pool.sol", + "start": 2380 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 2416, + "file": "contracts/core/Pool.sol", + "start": 2399 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4393, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4375 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 4413, + "file": "contracts/core/LiquidityProvider.sol", + "start": 4395 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 136 + ], + "IERC20Errors": [ + 41 + ], + "IERC721Errors": [ + 89 + ] + }, + "id": 137, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "138:141:0", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 41, + "linearizedBaseContracts": [ + 41 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "309:309:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 11, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "654:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "670:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "687:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:0" + }, + "src": "623:80:0" + }, + { + "documentation": { + "id": 12, + "nodeType": "StructuredDocumentation", + "src": "709:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 16, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "891:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:0" + }, + "src": "866:41:0" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "913:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 21, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "1104:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "src": "1077:45:0" + }, + { + "documentation": { + "id": 22, + "nodeType": "StructuredDocumentation", + "src": "1128:345:0", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 30, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1511:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 23, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1528:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 25, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:0", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "1547:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:0" + }, + "src": "1478:85:0" + }, + { + "documentation": { + "id": 31, + "nodeType": "StructuredDocumentation", + "src": "1569:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 35, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "1775:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:0" + }, + "src": "1748:45:0" + }, + { + "documentation": { + "id": 36, + "nodeType": "StructuredDocumentation", + "src": "1799:195:0", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 40, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2025:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:0" + }, + "src": "1999:43:0" + } + ], + "scope": 137, + "src": "280:1764:0", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 42, + "nodeType": "StructuredDocumentation", + "src": "2046:143:0", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 89, + "linearizedBaseContracts": [ + 89 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 43, + "nodeType": "StructuredDocumentation", + "src": "2220:219:0", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 47, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:0", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "2469:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:0" + }, + "src": "2444:40:0" + }, + { + "documentation": { + "id": 48, + "nodeType": "StructuredDocumentation", + "src": "2490:132:0", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 52, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2656:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:0" + }, + "src": "2627:46:0" + }, + { + "documentation": { + "id": 53, + "nodeType": "StructuredDocumentation", + "src": "2679:289:0", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 61, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3000:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3016:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:0", + "nodeType": "VariableDeclaration", + "scope": 61, + "src": "3033:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:0" + }, + "src": "2973:75:0" + }, + { + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "3054:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 66, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "3237:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 63, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:0" + }, + "src": "3211:42:0" + }, + { + "documentation": { + "id": 67, + "nodeType": "StructuredDocumentation", + "src": "3259:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 71, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "3451:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:0" + }, + "src": "3423:46:0" + }, + { + "documentation": { + "id": 72, + "nodeType": "StructuredDocumentation", + "src": "3475:247:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 78, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3760:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "3778:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:0" + }, + "src": "3727:68:0" + }, + { + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "3801:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 83, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "4008:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:0" + }, + "src": "3980:46:0" + }, + { + "documentation": { + "id": 84, + "nodeType": "StructuredDocumentation", + "src": "4032:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 88, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:0", + "nodeType": "VariableDeclaration", + "scope": 88, + "src": "4262:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 85, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:0" + }, + "src": "4234:46:0" + } + ], + "scope": 137, + "src": "2190:2092:0", + "usedErrors": [ + 47, + 52, + 61, + 66, + 71, + 78, + 83, + 88 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 90, + "nodeType": "StructuredDocumentation", + "src": "4284:145:0", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 136, + "linearizedBaseContracts": [ + 136 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "4461:361:0", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 101, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4860:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4876:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4893:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:0", + "nodeType": "VariableDeclaration", + "scope": 101, + "src": "4909:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:0" + }, + "src": "4827:99:0" + }, + { + "documentation": { + "id": 102, + "nodeType": "StructuredDocumentation", + "src": "4932:152:0", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 106, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:0", + "nodeType": "VariableDeclaration", + "scope": 106, + "src": "5116:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:0" + }, + "src": "5089:43:0" + }, + { + "documentation": { + "id": 107, + "nodeType": "StructuredDocumentation", + "src": "5138:159:0", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 111, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:0", + "nodeType": "VariableDeclaration", + "scope": 111, + "src": "5331:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:0" + }, + "src": "5302:47:0" + }, + { + "documentation": { + "id": 112, + "nodeType": "StructuredDocumentation", + "src": "5355:256:0", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 118, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:0", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "5669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:0" + }, + "src": "5616:68:0" + }, + { + "documentation": { + "id": 119, + "nodeType": "StructuredDocumentation", + "src": "5690:174:0", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 123, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:0", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "5898:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:0" + }, + "src": "5869:47:0" + }, + { + "documentation": { + "id": 124, + "nodeType": "StructuredDocumentation", + "src": "5922:197:0", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 128, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "6153:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:0" + }, + "src": "6124:47:0" + }, + { + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "6177:280:0", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 135, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6494:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:0", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "6513:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:0" + }, + "src": "6462:73:0" + } + ], + "scope": 137, + "src": "4430:2107:0", + "usedErrors": [ + 101, + 106, + 111, + 118, + 123, + 128, + 135 + ], + "usedEvents": [] + } + ], + "src": "112:6426:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 138, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 140, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 730, + "src": "131:36:1", + "symbolAliases": [ + { + "foreign": { + "id": 139, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "139:6:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 142, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 756, + "src": "168:63:1", + "symbolAliases": [ + { + "foreign": { + "id": 141, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "176:14:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 144, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 786, + "src": "232:48:1", + "symbolAliases": [ + { + "foreign": { + "id": 143, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "240:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 146, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 652, + "sourceUnit": 137, + "src": "281:65:1", + "symbolAliases": [ + { + "foreign": { + "id": 145, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41, + "src": "289:12:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 148, + "name": "Context", + "nameLocations": [ + "1133:7:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 785, + "src": "1133:7:1" + }, + "id": 149, + "nodeType": "InheritanceSpecifier", + "src": "1133:7:1" + }, + { + "baseName": { + "id": 150, + "name": "IERC20", + "nameLocations": [ + "1142:6:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "1142:6:1" + }, + "id": 151, + "nodeType": "InheritanceSpecifier", + "src": "1142:6:1" + }, + { + "baseName": { + "id": 152, + "name": "IERC20Metadata", + "nameLocations": [ + "1150:14:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 755, + "src": "1150:14:1" + }, + "id": 153, + "nodeType": "InheritanceSpecifier", + "src": "1150:14:1" + }, + { + "baseName": { + "id": 154, + "name": "IERC20Errors", + "nameLocations": [ + "1166:12:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41, + "src": "1166:12:1" + }, + "id": 155, + "nodeType": "InheritanceSpecifier", + "src": "1166:12:1" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 147, + "nodeType": "StructuredDocumentation", + "src": "348:757:1", + "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications." + }, + "fullyImplemented": true, + "id": 651, + "linearizedBaseContracts": [ + 651, + 41, + 755, + 729, + 785 + ], + "name": "ERC20", + "nameLocation": "1124:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1229:9:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1185:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 158, + "keyName": "account", + "keyNameLocation": "1201:7:1", + "keyType": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1185:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1317:11:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1245:83:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 164, + "keyName": "account", + "keyNameLocation": "1261:7:1", + "keyType": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1245:63:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 163, + "keyName": "spender", + "keyNameLocation": "1288:7:1", + "keyType": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1272:35:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1299:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1351:12:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1335:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1335:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1385:5:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1370:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 168, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1370:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1411:7:1", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "1396:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 170, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 187, + "nodeType": "Block", + "src": "1657:57:1", + "statements": [ + { + "expression": { + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 179, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 180, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "1675:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1667:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "1667:13:1" + }, + { + "expression": { + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 183, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "1690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 184, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "1700:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1690:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "1690:17:1" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "1425:171:1", + "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." + }, + "id": 188, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1627:5:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1613:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 173, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1613:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1648:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1634:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1634:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1612:44:1" + }, + "returnParameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1657:0:1" + }, + "scope": 651, + "src": "1601:113:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 742 + ], + "body": { + "id": 196, + "nodeType": "Block", + "src": "1839:29:1", + "statements": [ + { + "expression": { + "id": 194, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "1856:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 193, + "id": 195, + "nodeType": "Return", + "src": "1849:12:1" + } + ] + }, + "documentation": { + "id": 189, + "nodeType": "StructuredDocumentation", + "src": "1720:54:1", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "1788:4:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [], + "src": "1792:2:1" + }, + "returnParameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "1824:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1824:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1823:15:1" + }, + "scope": 651, + "src": "1779:89:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 748 + ], + "body": { + "id": 205, + "nodeType": "Block", + "src": "2043:31:1", + "statements": [ + { + "expression": { + "id": 203, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 202, + "id": 204, + "nodeType": "Return", + "src": "2053:14:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "1874:102:1", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "1990:6:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "1996:2:1" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2028:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2028:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2027:15:1" + }, + "scope": 651, + "src": "1981:93:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 754 + ], + "body": { + "id": 214, + "nodeType": "Block", + "src": "2763:26:1", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2780:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 211, + "id": 213, + "nodeType": "Return", + "src": "2773:9:1" + } + ] + }, + "documentation": { + "id": 207, + "nodeType": "StructuredDocumentation", + "src": "2080:622:1", + "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." + }, + "functionSelector": "313ce567", + "id": 215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "2716:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [], + "src": "2724:2:1" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2756:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 209, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2756:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "2755:7:1" + }, + "scope": 651, + "src": "2707:82:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 678 + ], + "body": { + "id": 223, + "nodeType": "Block", + "src": "2910:36:1", + "statements": [ + { + "expression": { + "id": 221, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2927:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 220, + "id": 222, + "nodeType": "Return", + "src": "2920:19:1" + } + ] + }, + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "2795:49:1", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "2858:11:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [], + "src": "2869:2:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "2901:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2901:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2900:9:1" + }, + "scope": 651, + "src": "2849:97:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 686 + ], + "body": { + "id": 236, + "nodeType": "Block", + "src": "3078:42:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 232, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "3095:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3095:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 231, + "id": 235, + "nodeType": "Return", + "src": "3088:25:1" + } + ] + }, + "documentation": { + "id": 225, + "nodeType": "StructuredDocumentation", + "src": "2952:47:1", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3013:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "account", + "nameLocation": "3031:7:1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3022:17:1" + }, + "returnParameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3068:9:1" + }, + "scope": 651, + "src": "3004:116:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 696 + ], + "body": { + "id": 260, + "nodeType": "Block", + "src": "3390:103:1", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3408:5:1", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "3400:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 249, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3416:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3400:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 253, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 254, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3455:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3459:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3438:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3438:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 257, + "nodeType": "ExpressionStatement", + "src": "3438:27:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 246, + "id": 259, + "nodeType": "Return", + "src": "3475:11:1" + } + ] + }, + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3126:184:1", + "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`." + }, + "functionSelector": "a9059cbb", + "id": 261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3324:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "to", + "nameLocation": "3341:2:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3333:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "value", + "nameLocation": "3353:5:1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3345:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3345:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3332:27:1" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "3384:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3384:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3383:6:1" + }, + "scope": 651, + "src": "3315:178:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 706 + ], + "body": { + "id": 277, + "nodeType": "Block", + "src": "3640:51:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 271, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "3657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 273, + "indexExpression": { + "id": 272, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 264, + "src": "3669:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "3676:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3657:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 270, + "id": 276, + "nodeType": "Return", + "src": "3650:34:1" + } + ] + }, + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "3499:47:1", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3560:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3578:5:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3570:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3570:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3593:7:1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3585:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3585:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3569:32:1" + }, + "returnParameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "3631:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3630:9:1" + }, + "scope": 651, + "src": "3551:140:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 716 + ], + "body": { + "id": 301, + "nodeType": "Block", + "src": "4077:107:1", + "statements": [ + { + "assignments": [ + 289 + ], + "declarations": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4095:5:1", + "nodeType": "VariableDeclaration", + "scope": 301, + "src": "4087:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4087:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 292, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 290, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4103:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4103:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4087:28:1" + }, + { + "expression": { + "arguments": [ + { + "id": 294, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 289, + "src": "4134:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 295, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4141:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 296, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4150:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 293, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 542, + "src": "4125:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4125:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4125:31:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4173:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 287, + "id": 300, + "nodeType": "Return", + "src": "4166:11:1" + } + ] + }, + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "3697:296:1", + "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." + }, + "functionSelector": "095ea7b3", + "id": 302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4007:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4023:7:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4015:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4015:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "value", + "nameLocation": "4040:5:1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4032:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:32:1" + }, + "returnParameters": { + "id": 287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "4071:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4071:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4070:6:1" + }, + "scope": 651, + "src": "3998:186:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 728 + ], + "body": { + "id": 333, + "nodeType": "Block", + "src": "4869:151:1", + "statements": [ + { + "assignments": [ + 315 + ], + "declarations": [ + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4887:7:1", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "4879:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 318, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 316, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "4897:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4897:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 320, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 321, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "4941:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 322, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4950:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 319, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 650, + "src": "4919:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 324, + "nodeType": "ExpressionStatement", + "src": "4919:37:1" + }, + { + "expression": { + "arguments": [ + { + "id": 326, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "4976:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 327, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "4982:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "4986:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 325, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4966:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4966:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "4966:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5009:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 313, + "id": 332, + "nodeType": "Return", + "src": "5002:11:1" + } + ] + }, + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "4190:581:1", + "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`." + }, + "functionSelector": "23b872dd", + "id": 334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4785:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "from", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4798:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4798:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "to", + "nameLocation": "4820:2:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4812:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "value", + "nameLocation": "4832:5:1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4824:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4824:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:41:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 334, + "src": "4863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 311, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4862:6:1" + }, + "scope": 651, + "src": "4776:244:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 380, + "nodeType": "Block", + "src": "5462:231:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5476:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5484:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5484:7:1", + "typeDescriptions": {} + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5484:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5476:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 358, + "nodeType": "IfStatement", + "src": "5472:86:1", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "5496:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5544:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5536:7:1", + "typeDescriptions": {} + } + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 350, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "5517:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 356, + "nodeType": "RevertStatement", + "src": "5510:37:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5571:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5577:7:1", + "typeDescriptions": {} + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5577:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5571:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 373, + "nodeType": "IfStatement", + "src": "5567:86:1", + "trueBody": { + "id": 372, + "nodeType": "Block", + "src": "5589:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5631:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5631:7:1", + "typeDescriptions": {} + } + }, + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5631:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 365, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5610:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5610:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 371, + "nodeType": "RevertStatement", + "src": "5603:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 375, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "5670:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 376, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 339, + "src": "5676:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "5680:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 374, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "5662:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5662:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "5662:24:1" + } + ] + }, + "documentation": { + "id": 335, + "nodeType": "StructuredDocumentation", + "src": "5026:362:1", + "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 381, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5402:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "mutability": "mutable", + "name": "from", + "nameLocation": "5420:4:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5412:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5412:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "to", + "nameLocation": "5434:2:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5426:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5426:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "value", + "nameLocation": "5446:5:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "5438:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5411:41:1" + }, + "returnParameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [], + "src": "5462:0:1" + }, + "scope": 651, + "src": "5393:300:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "6083:1032:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6113:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6105:7:1", + "typeDescriptions": {} + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6105:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6097:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 428, + "nodeType": "Block", + "src": "6271:362:1", + "statements": [ + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6293:11:1", + "nodeType": "VariableDeclaration", + "scope": 428, + "src": "6285:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 407, + "initialValue": { + "baseExpression": { + "id": 404, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6307:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 406, + "indexExpression": { + "id": 405, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6317:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6307:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6285:37:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 408, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 409, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6354:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6340:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 418, + "nodeType": "IfStatement", + "src": "6336:115:1", + "trueBody": { + "id": 417, + "nodeType": "Block", + "src": "6361:90:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 412, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6411:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 413, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6417:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6430:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "6386:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6386:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "RevertStatement", + "src": "6379:57:1" + } + ] + } + }, + { + "id": 427, + "nodeType": "UncheckedBlock", + "src": "6464:159:1", + "statements": [ + { + "expression": { + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 419, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6571:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "6581:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6571:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "6589:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6589:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6571:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "6571:37:1" + } + ] + } + ] + }, + "id": 429, + "nodeType": "IfStatement", + "src": "6093:540:1", + "trueBody": { + "id": 401, + "nodeType": "Block", + "src": "6117:148:1", + "statements": [ + { + "expression": { + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 397, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6233:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6249:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6233:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "6233:21:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 430, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "6647:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6653:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6653:7:1", + "typeDescriptions": {} + } + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6653:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6647:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 449, + "nodeType": "Block", + "src": "6862:206:1", + "statements": [ + { + "id": 448, + "nodeType": "UncheckedBlock", + "src": "6876:182:1", + "statements": [ + { + "expression": { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 442, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "7021:9:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 444, + "indexExpression": { + "id": 443, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7021:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7038:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7021:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 447, + "nodeType": "ExpressionStatement", + "src": "7021:22:1" + } + ] + } + ] + }, + "id": 450, + "nodeType": "IfStatement", + "src": "6643:425:1", + "trueBody": { + "id": 441, + "nodeType": "Block", + "src": "6665:191:1", + "statements": [ + { + "id": 440, + "nodeType": "UncheckedBlock", + "src": "6679:167:1", + "statements": [ + { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6810:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 437, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "6826:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6810:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "6810:21:1" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 452, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "7092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 453, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 386, + "src": "7098:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "7102:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 451, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "7083:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7083:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "EmitStatement", + "src": "7078:30:1" + } + ] + }, + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "5699:304:1", + "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event." + }, + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6017:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "from", + "nameLocation": "6033:4:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6025:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "to", + "nameLocation": "6047:2:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6039:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "value", + "nameLocation": "6059:5:1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "6051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6024:41:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "6083:0:1" + }, + "scope": 651, + "src": "6008:1107:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 490, + "nodeType": "Block", + "src": "7514:152:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 466, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7528:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7547:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7539:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:1", + "typeDescriptions": {} + } + }, + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7539:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7528:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 480, + "nodeType": "IfStatement", + "src": "7524:91:1", + "trueBody": { + "id": 479, + "nodeType": "Block", + "src": "7551:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7593:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7593:7:1", + "typeDescriptions": {} + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7593:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 472, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "7572:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7572:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "RevertStatement", + "src": "7565:39:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7640:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7632:7:1", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7632:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 461, + "src": "7644:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 487, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "7653:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 481, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "7624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7624:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "7624:35:1" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "7121:332:1", + "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead." + }, + "id": 491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7467:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 461, + "mutability": "mutable", + "name": "account", + "nameLocation": "7481:7:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7473:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "value", + "nameLocation": "7498:5:1", + "nodeType": "VariableDeclaration", + "scope": 491, + "src": "7490:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7490:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7472:32:1" + }, + "returnParameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "7514:0:1" + }, + "scope": 651, + "src": "7458:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 523, + "nodeType": "Block", + "src": "8040:150:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 499, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8054:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8073:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 500, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8065:7:1", + "typeDescriptions": {} + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8065:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8054:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 513, + "nodeType": "IfStatement", + "src": "8050:89:1", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "8077:62:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8125:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8117:7:1", + "typeDescriptions": {} + } + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8117:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 505, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "8098:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8098:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "RevertStatement", + "src": "8091:37:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 515, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "8156:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8173:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8165:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8165:7:1", + "typeDescriptions": {} + } + }, + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8165:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 520, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 458, + "src": "8148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8148:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "8148:35:1" + } + ] + }, + "documentation": { + "id": 492, + "nodeType": "StructuredDocumentation", + "src": "7672:307:1", + "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead" + }, + "id": 524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "7993:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "account", + "nameLocation": "8007:7:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "7999:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7999:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "mutability": "mutable", + "name": "value", + "nameLocation": "8024:5:1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "8016:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7998:32:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [], + "src": "8040:0:1" + }, + "scope": 651, + "src": "7984:206:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 541, + "nodeType": "Block", + "src": "8800:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 535, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "8819:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 536, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "8826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "8835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8842:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 534, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "8810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8810:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "8810:37:1" + } + ] + }, + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "8196:525:1", + "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 542, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8735:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8752:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8744:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8744:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8767:7:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8759:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8759:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "value", + "nameLocation": "8784:5:1", + "nodeType": "VariableDeclaration", + "scope": 542, + "src": "8776:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8776:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8743:47:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "8800:0:1" + }, + "scope": 651, + "src": "8726:128:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 601, + "nodeType": "Block", + "src": "9799:334:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 554, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "9813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9830:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9822:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9822:7:1", + "typeDescriptions": {} + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9813:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 568, + "nodeType": "IfStatement", + "src": "9809:89:1", + "trueBody": { + "id": 567, + "nodeType": "Block", + "src": "9834:64:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9876:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9876:7:1", + "typeDescriptions": {} + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9876:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 560, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9855:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9855:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 566, + "nodeType": "RevertStatement", + "src": "9848:39:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 569, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "9911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9922:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9922:7:1", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9922:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9911:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "IfStatement", + "src": "9907:90:1", + "trueBody": { + "id": 582, + "nodeType": "Block", + "src": "9934:63:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:1", + "typeDescriptions": {} + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 575, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "9955:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9955:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 581, + "nodeType": "RevertStatement", + "src": "9948:38:1" + } + ] + } + }, + { + "expression": { + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 584, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "10006:11:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 587, + "indexExpression": { + "id": 585, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10018:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10006:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 588, + "indexExpression": { + "id": 586, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10006:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10036:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10006:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "10006:35:1" + }, + { + "condition": { + "id": 592, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "10055:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 600, + "nodeType": "IfStatement", + "src": "10051:76:1", + "trueBody": { + "id": 599, + "nodeType": "Block", + "src": "10066:61:1", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 594, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 545, + "src": "10094:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 595, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 547, + "src": "10101:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 596, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "10110:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 593, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 672, + "src": "10085:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10085:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 598, + "nodeType": "EmitStatement", + "src": "10080:36:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "8860:836:1", + "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}." + }, + "id": 602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9710:8:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9727:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9719:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9719:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9742:7:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9734:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9734:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "value", + "nameLocation": "9759:5:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9751:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9751:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "9771:9:1", + "nodeType": "VariableDeclaration", + "scope": 602, + "src": "9766:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 550, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9766:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9718:63:1" + }, + "returnParameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [], + "src": "9799:0:1" + }, + "scope": 651, + "src": "9701:432:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 649, + "nodeType": "Block", + "src": "10504:388:1", + "statements": [ + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10522:16:1", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "10514:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10558:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "10541:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10541:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10514:52:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 619, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10580:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10605:7:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10600:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10614:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10600:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10580:37:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 648, + "nodeType": "IfStatement", + "src": "10576:310:1", + "trueBody": { + "id": 647, + "nodeType": "Block", + "src": "10619:267:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 626, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10637:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10656:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10637:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 636, + "nodeType": "IfStatement", + "src": "10633:130:1", + "trueBody": { + "id": 635, + "nodeType": "Block", + "src": "10663:100:1", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 630, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10715:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 631, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10742:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "10688:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10688:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "RevertStatement", + "src": "10681:67:1" + } + ] + } + }, + { + "id": 646, + "nodeType": "UncheckedBlock", + "src": "10776:100:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 638, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "10813:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 639, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "10820:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 640, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "10829:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "10848:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10855:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 637, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 542, + 602 + ], + "referencedDeclaration": 602, + "src": "10804:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10804:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "10804:57:1" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 603, + "nodeType": "StructuredDocumentation", + "src": "10139:271:1", + "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event." + }, + "id": 650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10424:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10448:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10440:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10440:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10463:7:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10455:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10455:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "value", + "nameLocation": "10480:5:1", + "nodeType": "VariableDeclaration", + "scope": 650, + "src": "10472:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10472:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10439:47:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [], + "src": "10504:0:1" + }, + "scope": 651, + "src": "10415:477:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 652, + "src": "1106:9788:1", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "105:10790:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ] + }, + "id": 730, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 654, + "nodeType": "StructuredDocumentation", + "src": "132:71:2", + "text": " @dev Interface of the ERC-20 standard as defined in the ERC." + }, + "fullyImplemented": false, + "id": 729, + "linearizedBaseContracts": [ + 729 + ], + "name": "IERC20", + "nameLocation": "214:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 655, + "nodeType": "StructuredDocumentation", + "src": "227:158:2", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 663, + "name": "Transfer", + "nameLocation": "396:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "421:4:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "405:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "405:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "443:2:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "427:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "455:5:2", + "nodeType": "VariableDeclaration", + "scope": 663, + "src": "447:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "404:57:2" + }, + "src": "390:72:2" + }, + { + "anonymous": false, + "documentation": { + "id": 664, + "nodeType": "StructuredDocumentation", + "src": "468:148:2", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 672, + "name": "Approval", + "nameLocation": "627:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 666, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "652:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "636:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "636:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "675:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "659:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 667, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "692:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "684:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "684:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "635:63:2" + }, + "src": "621:78:2" + }, + { + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "705:65:2", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 678, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "784:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [], + "src": "795:2:2" + }, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 678, + "src": "821:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:9:2" + }, + "scope": 729, + "src": "775:55:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 679, + "nodeType": "StructuredDocumentation", + "src": "836:71:2", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "921:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "account", + "nameLocation": "939:7:2", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "931:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "930:17:2" + }, + "returnParameters": { + "id": 685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 686, + "src": "971:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "970:9:2" + }, + "scope": 729, + "src": "912:68:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 687, + "nodeType": "StructuredDocumentation", + "src": "986:213:2", + "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 696, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1213:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "to", + "nameLocation": "1230:2:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1222:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1222:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "value", + "nameLocation": "1242:5:2", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1234:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1221:27:2" + }, + "returnParameters": { + "id": 695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1267:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 693, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1267:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:2" + }, + "scope": 729, + "src": "1204:69:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 697, + "nodeType": "StructuredDocumentation", + "src": "1279:264:2", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 706, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1557:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1575:5:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1567:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1590:7:2", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1582:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1566:32:2" + }, + "returnParameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 706, + "src": "1622:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1621:9:2" + }, + "scope": 729, + "src": "1548:83:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 707, + "nodeType": "StructuredDocumentation", + "src": "1637:667:2", + "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 716, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2318:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2334:7:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2326:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "value", + "nameLocation": "2351:5:2", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2343:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2343:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2325:32:2" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 716, + "src": "2376:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 713, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2376:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2375:6:2" + }, + "scope": 729, + "src": "2309:73:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 717, + "nodeType": "StructuredDocumentation", + "src": "2388:297:2", + "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2699:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "from", + "nameLocation": "2720:4:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2712:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2712:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "to", + "nameLocation": "2734:2:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2726:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "value", + "nameLocation": "2746:5:2", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2738:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2711:41:2" + }, + "returnParameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 728, + "src": "2771:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 725, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2771:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2770:6:2" + }, + "scope": 729, + "src": "2690:87:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 730, + "src": "204:2575:2", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "106:2674:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 729 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 731, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 733, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 756, + "sourceUnit": 730, + "src": "151:37:3", + "symbolAliases": [ + { + "foreign": { + "id": 732, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "159:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 735, + "name": "IERC20", + "nameLocations": [ + "306:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "306:6:3" + }, + "id": 736, + "nodeType": "InheritanceSpecifier", + "src": "306:6:3" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "190:87:3", + "text": " @dev Interface for the optional metadata functions from the ERC-20 standard." + }, + "fullyImplemented": false, + "id": 755, + "linearizedBaseContracts": [ + 755, + 729 + ], + "name": "IERC20Metadata", + "nameLocation": "288:14:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 737, + "nodeType": "StructuredDocumentation", + "src": "319:54:3", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "387:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 738, + "nodeType": "ParameterList", + "parameters": [], + "src": "391:2:3" + }, + "returnParameters": { + "id": 741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "417:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 739, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "417:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "416:15:3" + }, + "scope": 755, + "src": "378:54:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 743, + "nodeType": "StructuredDocumentation", + "src": "438:56:3", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 748, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "508:6:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 744, + "nodeType": "ParameterList", + "parameters": [], + "src": "514:2:3" + }, + "returnParameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 748, + "src": "540:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "540:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "539:15:3" + }, + "scope": 755, + "src": "499:56:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 749, + "nodeType": "StructuredDocumentation", + "src": "561:65:3", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 754, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "640:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "648:2:3" + }, + "returnParameters": { + "id": 753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "674:5:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "674:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "673:7:3" + }, + "scope": 755, + "src": "631:50:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 756, + "src": "278:405:3", + "usedErrors": [], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "125:559:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 785 + ] + }, + "id": 786, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 758, + "nodeType": "StructuredDocumentation", + "src": "127:496:4", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 785, + "linearizedBaseContracts": [ + 785 + ], + "name": "Context", + "nameLocation": "642:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "718:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 763, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 762, + "id": 765, + "nodeType": "Return", + "src": "728:17:4" + } + ] + }, + "id": 767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:4" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "709:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:4" + }, + "scope": 785, + "src": "656:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "825:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 771, + "id": 774, + "nodeType": "Return", + "src": "835:15:4" + } + ] + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:4" + }, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "809:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 769, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:4" + }, + "scope": 785, + "src": "758:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 783, + "nodeType": "Block", + "src": "935:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 780, + "id": 782, + "nodeType": "Return", + "src": "945:8:4" + } + ] + }, + "id": 784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:4" + }, + "returnParameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 784, + "src": "926:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:4" + }, + "scope": 785, + "src": "863:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 786, + "src": "624:338:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:4" + }, + "id": 4 + }, + "contracts/core/Factory.sol": { + "ast": { + "absolutePath": "contracts/core/Factory.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "IPool": [ + 2166 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory": [ + 1019 + ], + "PoolFactory__IdenticalAddress": [ + 791 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ], + "PoolFactory__NotSetter": [ + 797 + ], + "PoolFactory__PoolExists": [ + 795 + ], + "PoolFactory__ZeroAddress": [ + 793 + ] + }, + "id": 1020, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 787, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:5" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 788, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2167, + "src": "60:32:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Pool.sol", + "file": "./Pool.sol", + "id": 789, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1020, + "sourceUnit": 2104, + "src": "94:20:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "4bea99d9", + "id": 791, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "124:29:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 790, + "nodeType": "ParameterList", + "parameters": [], + "src": "153:2:5" + }, + "src": "118:38:5" + }, + { + "errorSelector": "74b959e9", + "id": 793, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "164:24:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:5" + }, + "src": "158:33:5" + }, + { + "errorSelector": "423d7935", + "id": 795, + "name": "PoolFactory__PoolExists", + "nameLocation": "199:23:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:5" + }, + "src": "193:32:5" + }, + { + "errorSelector": "e9e17318", + "id": 797, + "name": "PoolFactory__NotSetter", + "nameLocation": "233:22:5", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "255:2:5" + }, + "src": "227:31:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoolFactory", + "contractDependencies": [ + 2103 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1019, + "linearizedBaseContracts": [ + 1019 + ], + "name": "PoolFactory", + "nameLocation": "271:11:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "feeReceiver", + "nameLocation": "306:11:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "290:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "290:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 803, + "mutability": "mutable", + "name": "feeReceiverSetter", + "nameLocation": "357:17:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "324:50:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 802, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "324:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "343:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 809, + "mutability": "mutable", + "name": "getPairs", + "nameLocation": "439:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "383:64:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 808, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "383:47:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 807, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "410:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "402:27:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "421:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 812, + "mutability": "mutable", + "name": "allPairs", + "nameLocation": "472:8:5", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "454:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 811, + "nodeType": "ArrayTypeName", + "src": "454:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b", + "id": 820, + "name": "PoolCreated", + "nameLocation": "495:11:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": false, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "515:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "507:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "507:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": false, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "531:6:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "523:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "547:11:5", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "539:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "506:53:5" + }, + "src": "489:71:5" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "608:63:5", + "statements": [ + { + "expression": { + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 825, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "619:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 827, + "indexExpression": { + "id": 826, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 822, + "src": "637:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "619:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "619:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 830, + "nodeType": "ExpressionStatement", + "src": "619:44:5" + } + ] + }, + "id": 832, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "588:18:5", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "580:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "579:28:5" + }, + "returnParameters": { + "id": 824, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:0:5" + }, + "scope": 1019, + "src": "568:103:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "795:978:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 841, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "810:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 842, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "820:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "810:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 847, + "nodeType": "IfStatement", + "src": "806:60:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 844, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "835:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "835:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 846, + "nodeType": "RevertStatement", + "src": "828:38:5" + } + }, + { + "assignments": [ + 849, + 851 + ], + "declarations": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "token0", + "nameLocation": "886:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "878:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "878:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "token1", + "nameLocation": "902:6:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "894:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "894:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 862, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "912:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 853, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "921:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "912:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 858, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "976:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 859, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "984:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 860, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "975:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "912:79:5", + "trueExpression": { + "components": [ + { + "id": 855, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "944:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 856, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "952:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 857, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "943:16:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "877:114:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1089:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:5", + "typeDescriptions": {} + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1089:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 872, + "nodeType": "IfStatement", + "src": "1085:59:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 869, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "1118:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1118:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "RevertStatement", + "src": "1111:33:5" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "baseExpression": { + "id": 873, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1159:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 875, + "indexExpression": { + "id": 874, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 877, + "indexExpression": { + "id": 876, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1159:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1195:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1187:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1187:7:5", + "typeDescriptions": {} + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1187:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1159:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 886, + "nodeType": "IfStatement", + "src": "1155:89:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 883, + "name": "PoolFactory__PoolExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "1219:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "RevertStatement", + "src": "1212:32:5" + } + }, + { + "assignments": [ + 888 + ], + "declarations": [ + { + "constant": false, + "id": 888, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "1270:8:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1257:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1257:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 893, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 890, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1286:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + ], + "id": 889, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1281:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1281:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103", + "typeString": "type(contract Pool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1292:12:5", + "memberName": "creationCode", + "nodeType": "MemberAccess", + "src": "1281:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1257:47:5" + }, + { + "assignments": [ + 895 + ], + "declarations": [ + { + "constant": false, + "id": 895, + "mutability": "mutable", + "name": "salt", + "nameLocation": "1323:4:5", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "1315:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1315:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 903, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 899, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1357:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 900, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 897, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1340:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1344:12:5", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1340:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1340:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 896, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1330:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1330:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1315:58:5" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "1427:93:5", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1442:67:5", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1465:1:5", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1472:8:5" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1482:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1468:3:5" + }, + "nodeType": "YulFunctionCall", + "src": "1468:17:5" + }, + { + "arguments": [ + { + "name": "bytecode", + "nodeType": "YulIdentifier", + "src": "1493:8:5" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1487:5:5" + }, + "nodeType": "YulFunctionCall", + "src": "1487:15:5" + }, + { + "name": "salt", + "nodeType": "YulIdentifier", + "src": "1504:4:5" + } + ], + "functionName": { + "name": "create2", + "nodeType": "YulIdentifier", + "src": "1457:7:5" + }, + "nodeType": "YulFunctionCall", + "src": "1457:52:5" + }, + "variableNames": [ + { + "name": "poolAddress", + "nodeType": "YulIdentifier", + "src": "1442:11:5" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1472:8:5", + "valueSize": 1 + }, + { + "declaration": 888, + "isOffset": false, + "isSlot": false, + "src": "1493:8:5", + "valueSize": 1 + }, + { + "declaration": 839, + "isOffset": false, + "isSlot": false, + "src": "1442:11:5", + "valueSize": 1 + }, + { + "declaration": 895, + "isOffset": false, + "isSlot": false, + "src": "1504:4:5", + "valueSize": 1 + } + ], + "id": 904, + "nodeType": "InlineAssembly", + "src": "1418:102:5" + }, + { + "expression": { + "arguments": [ + { + "id": 909, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "1555:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 910, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "1563:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 906, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1537:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 905, + "name": "Pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "1532:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$", + "typeString": "type(contract Pool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1550:4:5", + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 1683, + "src": "1532:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 912, + "nodeType": "ExpressionStatement", + "src": "1532:38:5" + }, + { + "expression": { + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 913, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1583:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 917, + "indexExpression": { + "id": 915, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1600:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1583:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 918, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1610:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1583:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 920, + "nodeType": "ExpressionStatement", + "src": "1583:38:5" + }, + { + "expression": { + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 921, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1632:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 924, + "indexExpression": { + "id": 922, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1641:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1632:16:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 925, + "indexExpression": { + "id": 923, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1649:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1632:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 926, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1659:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1632:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "1632:38:5" + }, + { + "expression": { + "arguments": [ + { + "id": 932, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1695:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 929, + "name": "allPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 812, + "src": "1681:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1690:4:5", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "1681:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1681:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1681:26:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 936, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "1737:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 937, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "1745:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 938, + "name": "poolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "1753:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 935, + "name": "PoolCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "1725:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1725:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 940, + "nodeType": "EmitStatement", + "src": "1720:45:5" + } + ] + }, + "functionSelector": "e3433615", + "id": 942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "688:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "717:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "709:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 833, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "742:6:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "734:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "734:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "698:57:5" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "poolAddress", + "nameLocation": "782:11:5", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "774:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "773:21:5" + }, + "scope": 1019, + "src": "679:1094:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "1895:52:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 951, + "name": "getPairs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 809, + "src": "1913:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 953, + "indexExpression": { + "id": 952, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "1922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 955, + "indexExpression": { + "id": 954, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1931:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1913:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 950, + "id": 956, + "nodeType": "Return", + "src": "1906:33:5" + } + ] + }, + "functionSelector": "4a70f02e", + "id": 958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "1790:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "1822:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1814:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1814:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "1848:7:5", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1840:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1840:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1803:59:5" + }, + "returnParameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 949, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "1886:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1885:9:5" + }, + "scope": 1019, + "src": "1781:166:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 970, + "nodeType": "Block", + "src": "2010:73:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 963, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2021:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2021:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "2021:15:5" + }, + { + "expression": { + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 966, + "name": "feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "2049:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 967, + "name": "_feeReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "2063:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2049:26:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 969, + "nodeType": "ExpressionStatement", + "src": "2049:26:5" + } + ] + }, + "functionSelector": "efdcd974", + "id": 971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setFeeReceiver", + "nameLocation": "1964:14:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "_feeReceiver", + "nameLocation": "1987:12:5", + "nodeType": "VariableDeclaration", + "scope": 971, + "src": "1979:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1979:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1978:22:5" + }, + "returnParameters": { + "id": 962, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:0:5" + }, + "scope": 1019, + "src": "1955:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 985, + "nodeType": "Block", + "src": "2160:91:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 976, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2171:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2171:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "2171:15:5" + }, + { + "expression": { + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 979, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2199:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 981, + "indexExpression": { + "id": 980, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "2217:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2199:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2239:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2199:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "2199:44:5" + } + ] + }, + "functionSelector": "5ac40ab3", + "id": 986, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addToFeeReceiverSetter", + "nameLocation": "2100:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2131:18:5", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "2123:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2122:28:5" + }, + "returnParameters": { + "id": 975, + "nodeType": "ParameterList", + "parameters": [], + "src": "2160:0:5" + }, + "scope": 1019, + "src": "2091:160:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1000, + "nodeType": "Block", + "src": "2333:92:5", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 991, + "name": "checkIfSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1018, + "src": "2344:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:15:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 993, + "nodeType": "ExpressionStatement", + "src": "2344:15:5" + }, + { + "expression": { + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 994, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2372:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 996, + "indexExpression": { + "id": 995, + "name": "_feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 988, + "src": "2390:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2372:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2412:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2372:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "ExpressionStatement", + "src": "2372:45:5" + } + ] + }, + "functionSelector": "48397023", + "id": 1001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeFromFeeReceiverSetter", + "nameLocation": "2268:27:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 988, + "mutability": "mutable", + "name": "_feeReceiverSetter", + "nameLocation": "2304:18:5", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "2296:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2296:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2295:28:5" + }, + "returnParameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2333:0:5" + }, + "scope": 1019, + "src": "2259:166:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "2472:121:5", + "statements": [ + { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "mutability": "mutable", + "name": "ifSetter", + "nameLocation": "2488:8:5", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "2483:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1004, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2483:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1010, + "initialValue": { + "baseExpression": { + "id": 1006, + "name": "feeReceiverSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "2499:17:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1009, + "indexExpression": { + "expression": { + "id": 1007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2517:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2521:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2517:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2499:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2483:45:5" + }, + { + "condition": { + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2543:9:5", + "subExpression": { + "id": 1011, + "name": "ifSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2544:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1016, + "nodeType": "IfStatement", + "src": "2539:46:5", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1013, + "name": "PoolFactory__NotSetter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "2561:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2561:24:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1015, + "nodeType": "RevertStatement", + "src": "2554:31:5" + } + } + ] + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkIfSetter", + "nameLocation": "2442:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1002, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:5" + }, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2472:0:5" + }, + "scope": 1019, + "src": "2433:160:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1020, + "src": "262:2334:5", + "usedErrors": [ + 791, + 793, + 795, + 797 + ], + "usedEvents": [ + 820 + ] + } + ], + "src": "33:2563:5" + }, + "id": 5 + }, + "contracts/core/LiquidityProvider.sol": { + "ast": { + "absolutePath": "contracts/core/LiquidityProvider.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "IERC20": [ + 729 + ], + "IFactory": [ + 2124 + ], + "IPool": [ + 2166 + ], + "IWEDU": [ + 2186 + ], + "LiquidityProvider": [ + 1537 + ], + "LiquidityProvider__EDUTransferFailed": [ + 1032 + ], + "LiquidityProvider__InsufficientAmount": [ + 1028 + ], + "LiquidityProvider__InsufficientOutputAmount": [ + 1030 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 1538, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1021, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1022, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 730, + "src": "120:56:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "file": "./interfaces/IFactory.sol", + "id": 1023, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2125, + "src": "178:35:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "file": "./interfaces/IPool.sol", + "id": 1024, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2167, + "src": "215:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "file": "./interfaces/IWedu.sol", + "id": 1025, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2187, + "src": "249:32:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/libraries/Library.sol", + "file": "./libraries/Library.sol", + "id": 1026, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1538, + "sourceUnit": 2296, + "src": "283:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "d0368649", + "id": 1028, + "name": "LiquidityProvider__InsufficientAmount", + "nameLocation": "326:37:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [], + "src": "363:2:6" + }, + "src": "320:46:6" + }, + { + "errorSelector": "dec0fbbe", + "id": 1030, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nameLocation": "374:43:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "417:2:6" + }, + "src": "368:52:6" + }, + { + "errorSelector": "0221f34c", + "id": 1032, + "name": "LiquidityProvider__EDUTransferFailed", + "nameLocation": "428:36:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1031, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:6" + }, + "src": "422:45:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "LiquidityProvider", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1537, + "linearizedBaseContracts": [ + 1537 + ], + "name": "LiquidityProvider", + "nameLocation": "480:17:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1034, + "mutability": "immutable", + "name": "factoryAddress", + "nameLocation": "531:14:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "505:40:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1033, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "505:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1036, + "mutability": "immutable", + "name": "WEDU", + "nameLocation": "578:4:6", + "nodeType": "VariableDeclaration", + "scope": 1537, + "src": "552:30:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1051, + "nodeType": "Block", + "src": "643:74:6", + "statements": [ + { + "expression": { + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1043, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "654:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1044, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1038, + "src": "671:15:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:32:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "654:32:6" + }, + { + "expression": { + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1047, + "name": "WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1036, + "src": "697:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1048, + "name": "_WEDU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "704:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "697:12:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "697:12:6" + } + ] + }, + "id": 1052, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1038, + "mutability": "mutable", + "name": "_factoryAddress", + "nameLocation": "611:15:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "603:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1037, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "603:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "mutability": "mutable", + "name": "_WEDU", + "nameLocation": "636:5:6", + "nodeType": "VariableDeclaration", + "scope": 1052, + "src": "628:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "602:40:6" + }, + "returnParameters": { + "id": 1042, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:6" + }, + "scope": 1537, + "src": "591:126:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1184, + "nodeType": "Block", + "src": "995:1414:6", + "statements": [ + { + "assignments": [ + 1072 + ], + "declarations": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "pair", + "nameLocation": "1014:4:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1006:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1006:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "arguments": [ + { + "id": 1077, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1069:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1074, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1030:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1021:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1046:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1021:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1006:71:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1108:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1100:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1100:7:6", + "typeDescriptions": {} + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1100:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1092:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "1088:97:6", + "trueBody": { + "expression": { + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1087, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1125:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1092, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "1168:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1093, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1177:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1089, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1141:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1088, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "1132:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1157:10:6", + "memberName": "createPool", + "nodeType": "MemberAccess", + "referencedDeclaration": 2123, + "src": "1132:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1132:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:60:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1125:60:6" + } + }, + { + "assignments": [ + 1099, + 1101 + ], + "declarations": [ + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "1207:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1199:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1199:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1101, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "1225:8:6", + "nodeType": "VariableDeclaration", + "scope": 1184, + "src": "1217:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1107, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1103, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "1243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1102, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "1237:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1249:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "1237:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1198:69:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1108, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1284:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1111, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1301:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1313:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1301:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:30:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1182, + "nodeType": "Block", + "src": "1416:986:6", + "statements": [ + { + "assignments": [ + 1125 + ], + "declarations": [ + { + "constant": false, + "id": 1125, + "mutability": "mutable", + "name": "optimalAmountOfTokenB", + "nameLocation": "1439:21:6", + "nodeType": "VariableDeclaration", + "scope": 1182, + "src": "1431:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1431:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1131, + "initialValue": { + "arguments": [ + { + "id": 1127, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1487:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1128, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "1527:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1129, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "1554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1126, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1463:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1463:114:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:146:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1132, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1596:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1133, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1621:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1596:46:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1180, + "nodeType": "Block", + "src": "1938:453:6", + "statements": [ + { + "assignments": [ + 1152 + ], + "declarations": [ + { + "constant": false, + "id": 1152, + "mutability": "mutable", + "name": "amountAOptimal", + "nameLocation": "1965:14:6", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "1957:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1154, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2010:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1155, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "2054:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1156, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "2085:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1153, + "name": "quote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "1982:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:130:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1957:155:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2138:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1161, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "2156:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2138:39:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1159, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "2131:6:6", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2131:47:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "ExpressionStatement", + "src": "2131:47:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1165, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2201:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1166, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "2218:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2201:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1171, + "nodeType": "IfStatement", + "src": "2197:99:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1168, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "2257:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2257:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1170, + "nodeType": "RevertStatement", + "src": "2250:46:6" + } + }, + { + "expression": { + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1172, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "2316:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1173, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "2325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1174, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2315:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1175, + "name": "amountAOptimal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1152, + "src": "2337:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1176, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "2353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:39:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2315:60:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1179, + "nodeType": "ExpressionStatement", + "src": "2315:60:6" + } + ] + }, + "id": 1181, + "nodeType": "IfStatement", + "src": "1592:799:6", + "trueBody": { + "id": 1150, + "nodeType": "Block", + "src": "1644:288:6", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1135, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1667:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1136, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1691:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1141, + "nodeType": "IfStatement", + "src": "1663:106:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1138, + "name": "LiquidityProvider__InsufficientAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1028, + "src": "1730:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1730:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1140, + "nodeType": "RevertStatement", + "src": "1723:46:6" + } + }, + { + "expression": { + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1142, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1789:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1143, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1144, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1788:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1145, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1832:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1146, + "name": "optimalAmountOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1125, + "src": "1876:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1147, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1809:107:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1788:128:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1149, + "nodeType": "ExpressionStatement", + "src": "1788:128:6" + } + ] + } + } + ] + }, + "id": 1183, + "nodeType": "IfStatement", + "src": "1280:1122:6", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "1316:94:6", + "statements": [ + { + "expression": { + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1115, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "1332:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1116, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "1341:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1117, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1331:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 1118, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1353:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1119, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "1376:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1120, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1352:46:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "1331:67:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "1331:67:6" + } + ] + } + } + ] + }, + "id": 1185, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLiquidity", + "nameLocation": "734:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "766:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "758:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1053, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "758:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1056, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "792:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "784:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "784:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1058, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "818:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "810:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "858:21:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "850:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "850:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "898:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "890:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "890:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "926:9:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "918:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "918:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "747:195:6" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "969:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "961:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "986:7:6", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "978:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "978:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "960:34:6" + }, + "scope": 1537, + "src": "725:1684:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "2703:487:6", + "statements": [ + { + "expression": { + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 1206, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "2715:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1207, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "2724:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1208, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2714:18:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1210, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2763:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1211, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2784:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1212, + "name": "amountOfTokenADesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "2805:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1213, + "name": "amountOfTokenBDesired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2841:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1214, + "name": "minTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1195, + "src": "2877:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1215, + "name": "minTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2901:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1209, + "name": "_addLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1185, + "src": "2735:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:186:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "2714:207:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1218, + "nodeType": "ExpressionStatement", + "src": "2714:207:6" + }, + { + "assignments": [ + 1220 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "pair", + "nameLocation": "2940:4:6", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "2932:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2932:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "2986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "2994:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1222, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2956:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1221, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "2947:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2972:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "2947:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2947:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2932:69:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1233, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3040:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3044:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3040:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3052:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1236, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "3058:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1230, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1187, + "src": "3019:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3012:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3027:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3012:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3012:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1238, + "nodeType": "ExpressionStatement", + "src": "3012:54:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3105:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3105:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1245, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3117:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1246, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "3123:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1240, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "3084:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1239, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3077:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:14:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3092:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3077:27:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3077:54:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "3077:54:6" + }, + { + "expression": { + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1249, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "3142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1254, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3171:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3175:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3171:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1251, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "3160:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1250, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3154:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3166:4:6", + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2140, + "src": "3154:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3142:40:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1258, + "nodeType": "ExpressionStatement", + "src": "3142:40:6" + } + ] + }, + "functionSelector": "3351733f", + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addLiquidity", + "nameLocation": "2426:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1187, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "2457:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2449:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2449:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1189, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "2482:6:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2474:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2474:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "amountOfTokenADesired", + "nameLocation": "2507:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2499:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2499:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "amountOfTokenBDesired", + "nameLocation": "2547:21:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2539:29:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "mutability": "mutable", + "name": "minTokenA", + "nameLocation": "2587:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2579:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2579:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "minTokenB", + "nameLocation": "2615:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2607:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2438:193:6" + }, + "returnParameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2658:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2650:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2650:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2675:7:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2667:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2667:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2692:9:6", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "2684:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2684:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2649:53:6" + }, + "scope": 1537, + "src": "2417:773:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1349, + "nodeType": "Block", + "src": "4116:531:6", + "statements": [ + { + "body": { + "id": 1347, + "nodeType": "Block", + "src": "4166:474:6", + "statements": [ + { + "assignments": [ + 1286, + 1288 + ], + "declarations": [ + { + "constant": false, + "id": 1286, + "mutability": "mutable", + "name": "input", + "nameLocation": "4190:5:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4182:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1285, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4182:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "output", + "nameLocation": "4205:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4197:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4197:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1298, + "initialValue": { + "components": [ + { + "baseExpression": { + "id": 1289, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4216:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1291, + "indexExpression": { + "id": 1290, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4221:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4216:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1292, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4225:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1296, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4230:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4234:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4230:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4225:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1297, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4215:22:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4181:56:6" + }, + { + "assignments": [ + 1300, + null + ], + "declarations": [ + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "token0", + "nameLocation": "4261:6:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4253:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1306, + "initialValue": { + "arguments": [ + { + "id": 1303, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1304, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "4303:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1301, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "4273:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4285:10:6", + "memberName": "sortTokens", + "nodeType": "MemberAccess", + "referencedDeclaration": 2236, + "src": "4273:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$", + "typeString": "function (address,address) pure returns (address,address)" + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4273:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4252:58:6" + }, + { + "assignments": [ + 1308 + ], + "declarations": [ + { + "constant": false, + "id": 1308, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "4333:9:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4325:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4325:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1314, + "initialValue": { + "baseExpression": { + "id": 1309, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4345:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1313, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1310, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4353:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4357:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4345:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4325:34:6" + }, + { + "assignments": [ + 1316, + 1318 + ], + "declarations": [ + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "4383:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4375:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "4403:10:6", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "4395:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1335, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1319, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "4417:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1320, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "4426:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4417:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4504:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4496:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:6", + "typeDescriptions": {} + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4496:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1332, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4508:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1333, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4495:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 1334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4417:101:6", + "trueExpression": { + "components": [ + { + "id": 1322, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4453:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4472:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4464:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4464:7:6", + "typeDescriptions": {} + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4464:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1327, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4452:23:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4374:144:6" + }, + { + "documentation": "TODO: In case of multiple hops ", + "expression": { + "arguments": [ + { + "id": 1340, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1308, + "src": "4601:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 1341, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "4612:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1343, + "indexExpression": { + "id": 1342, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4620:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4612:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1344, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1270, + "src": "4624:3:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1337, + "name": "_pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1268, + "src": "4589:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1336, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "4583:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4596:4:6", + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 2165, + "src": "4583:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address) external" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1346, + "nodeType": "ExpressionStatement", + "src": "4583:45:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1276, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4140:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1277, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "4144:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4149:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4158:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4144:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4140:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1348, + "initializationExpression": { + "assignments": [ + 1274 + ], + "declarations": [ + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "i", + "nameLocation": "4137:1:6", + "nodeType": "VariableDeclaration", + "scope": 1348, + "src": "4132:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1273, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4132:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1275, + "nodeType": "VariableDeclarationStatement", + "src": "4132:6:6" + }, + "loopExpression": { + "expression": { + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4161:3:6", + "subExpression": { + "id": 1282, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4161:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1284, + "nodeType": "ExpressionStatement", + "src": "4161:3:6" + }, + "nodeType": "ForStatement", + "src": "4127:513:6" + } + ] + }, + "id": 1350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "3981:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4014:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "3997:24:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3997:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1262, + "nodeType": "ArrayTypeName", + "src": "3997:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1266, + "mutability": "mutable", + "name": "path", + "nameLocation": "4049:4:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4032:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4032:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1265, + "nodeType": "ArrayTypeName", + "src": "4032:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1268, + "mutability": "mutable", + "name": "_pair", + "nameLocation": "4072:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4064:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1267, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4064:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1270, + "mutability": "mutable", + "name": "_to", + "nameLocation": "4096:3:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "4088:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3986:120:6" + }, + "returnParameters": { + "id": 1272, + "nodeType": "ParameterList", + "parameters": [], + "src": "4116:0:6" + }, + "scope": 1537, + "src": "3972:675:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1420, + "nodeType": "Block", + "src": "4899:392:6", + "statements": [ + { + "assignments": [ + 1365 + ], + "declarations": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "pair", + "nameLocation": "4918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1420, + "src": "4910:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1377, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1370, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1372, + "indexExpression": { + "hexValue": "30", + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4964:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1373, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "4973:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1375, + "indexExpression": { + "hexValue": "31", + "id": 1374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4978:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4973:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1367, + "name": "factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "4934:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1366, + "name": "IFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2124, + "src": "4925:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$", + "typeString": "type(contract IFactory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IFactory_$2124", + "typeString": "contract IFactory" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4950:13:6", + "memberName": "getTokenPairs", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "4925:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) external returns (address)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4925:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4910:71:6" + }, + { + "expression": { + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1378, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "4994:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1380, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1381, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "5024:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1382, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5034:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 1379, + "name": "getAmountsOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "5004:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5004:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "4994:45:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1385, + "nodeType": "ExpressionStatement", + "src": "4994:45:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1386, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5054:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1391, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1387, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5062:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5070:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5062:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5062:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5054:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1392, + "name": "amountOutMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "5084:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5054:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1397, + "nodeType": "IfStatement", + "src": "5050:113:6", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1394, + "name": "LiquidityProvider__InsufficientOutputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "5118:43:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5118:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1396, + "nodeType": "RevertStatement", + "src": "5111:52:6" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5205:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5209:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5205:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5217:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 1407, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5223:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1409, + "indexExpression": { + "hexValue": "30", + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5231:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5223:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1399, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5183:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1401, + "indexExpression": { + "hexValue": "30", + "id": 1400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5183:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1398, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "5176:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5192:12:6", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "5176:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5176:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "5176:58:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1413, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "5251:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1414, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "5260:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 1415, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1365, + "src": "5266:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1416, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5272:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5276:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5272:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "5245:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[] memory,address[] memory,address,address)" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "5245:38:6" + } + ] + }, + "functionSelector": "86818f26", + "id": 1421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swapExactTokensForTokens", + "nameLocation": "4664:24:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "4704:8:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4699:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1351, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4699:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1354, + "mutability": "mutable", + "name": "amountOutMin", + "nameLocation": "4728:12:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4723:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4723:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "path", + "nameLocation": "4770:4:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4751:23:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4751:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1356, + "nodeType": "ArrayTypeName", + "src": "4751:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4688:93:6" + }, + "returnParameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "4875:7:6", + "nodeType": "VariableDeclaration", + "scope": 1421, + "src": "4861:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4861:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1361, + "nodeType": "ArrayTypeName", + "src": "4861:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4817:76:6" + }, + "scope": 1537, + "src": "4655:636:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1459, + "nodeType": "Block", + "src": "5429:265:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1433, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5448:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5448:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5461:43:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + }, + "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\"" + } + ], + "id": 1432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5440:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5440:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "5440:65:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1440, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5538:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5549:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5538:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1443, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5554:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5565:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5554:12:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5538:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5581:42:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 1439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5516:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5516:118:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1449, + "nodeType": "ExpressionStatement", + "src": "5516:118:6" + }, + { + "expression": { + "id": 1457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1450, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1451, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1452, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1427, + "src": "5666:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5656:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5655:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1455, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1425, + "src": "5678:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5655:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5645:41:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1458, + "nodeType": "ExpressionStatement", + "src": "5645:41:6" + } + ] + }, + "id": 1460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "quote", + "nameLocation": "5308:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1423, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "5329:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5324:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5324:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1425, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "5352:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5347:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1424, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1427, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "5376:8:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5371:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1426, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5371:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5313:78:6" + }, + "returnParameters": { + "id": 1431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1430, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "5420:7:6", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "5415:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:14:6" + }, + "scope": 1537, + "src": "5299:395:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1535, + "nodeType": "Block", + "src": "5923:453:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1474, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "5942:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5947:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5942:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "32", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5942:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "id": 1478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5960:32:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + }, + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\"" + } + ], + "id": 1473, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5934:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:59:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "ExpressionStatement", + "src": "5934:59:6" + }, + { + "expression": { + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1481, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6004:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1485, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6030:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6025:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6014:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6018:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1483, + "nodeType": "ArrayTypeName", + "src": "6018:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6014:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "6004:33:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1489, + "nodeType": "ExpressionStatement", + "src": "6004:33:6" + }, + { + "expression": { + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1490, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1492, + "indexExpression": { + "hexValue": "30", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6048:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1493, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "6061:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6048:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "6048:21:6" + }, + { + "body": { + "id": 1533, + "nodeType": "Block", + "src": "6119:250:6", + "statements": [ + { + "assignments": [ + 1509, + 1511 + ], + "declarations": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "6140:9:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6135:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6135:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1511, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "6156:10:6", + "nodeType": "VariableDeclaration", + "scope": 1533, + "src": "6151:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1510, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6151:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1517, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 1513, + "name": "pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "6176:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1512, + "name": "IPool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "6170:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$", + "typeString": "type(contract IPool)" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPool_$2166", + "typeString": "contract IPool" + } + }, + "id": 1515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6182:16:6", + "memberName": "getTokenReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 2156, + "src": "6170:28:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6170:30:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6134:66:6" + }, + { + "expression": { + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1518, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6215:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1522, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6223:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6227:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6223:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6215:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 1525, + "name": "amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1471, + "src": "6275:7:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1527, + "indexExpression": { + "id": 1526, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6283:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6275:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1528, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1529, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1511, + "src": "6332:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1523, + "name": "DefiLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "6232:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$", + "typeString": "type(library DefiLibrary)" + } + }, + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6244:12:6", + "memberName": "getAmountOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "6232:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6232:125:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6215:142:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1532, + "nodeType": "ExpressionStatement", + "src": "6215:142:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6093:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1500, + "name": "path", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "6097:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6102:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6097:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6111:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6097:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6093:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1534, + "initializationExpression": { + "assignments": [ + 1497 + ], + "declarations": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "i", + "nameLocation": "6090:1:6", + "nodeType": "VariableDeclaration", + "scope": 1534, + "src": "6085:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6085:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1498, + "nodeType": "VariableDeclarationStatement", + "src": "6085:6:6" + }, + "loopExpression": { + "expression": { + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6114:3:6", + "subExpression": { + "id": 1505, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1497, + "src": "6114:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "6114:3:6" + }, + "nodeType": "ForStatement", + "src": "6080:289:6" + } + ] + }, + "functionSelector": "bb7b9c76", + "id": 1536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountsOut", + "nameLocation": "5779:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "pair", + "nameLocation": "5811:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5803:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5803:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "5831:8:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5826:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1467, + "mutability": "mutable", + "name": "path", + "nameLocation": "5867:4:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5850:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5850:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1466, + "nodeType": "ArrayTypeName", + "src": "5850:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "5792:86:6" + }, + "returnParameters": { + "id": 1472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1471, + "mutability": "mutable", + "name": "amounts", + "nameLocation": "5914:7:6", + "nodeType": "VariableDeclaration", + "scope": 1536, + "src": "5900:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1469, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5900:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1470, + "nodeType": "ArrayTypeName", + "src": "5900:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5899:23:6" + }, + "scope": 1537, + "src": "5770:606:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1538, + "src": "471:5908:6", + "usedErrors": [ + 1028, + 1030, + 2190, + 2192 + ], + "usedEvents": [] + } + ], + "src": "33:6346:6" + }, + "id": 6 + }, + "contracts/core/Math.sol": { + "ast": { + "absolutePath": "contracts/core/Math.sol", + "exportedSymbols": { + "Math": [ + 1613 + ] + }, + "id": 1614, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1539, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613 + ], + "name": "Math", + "nameLocation": "123:4:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1557, + "nodeType": "Block", + "src": "195:36:7", + "statements": [ + { + "expression": { + "id": 1555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1548, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "206:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1549, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "210:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1550, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "214:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "210:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1553, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1543, + "src": "222:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "210:13:7", + "trueExpression": { + "id": 1552, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1541, + "src": "218:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "206:17:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1556, + "nodeType": "ExpressionStatement", + "src": "206:17:7" + } + ] + }, + "id": 1558, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "144:3:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1541, + "mutability": "mutable", + "name": "x", + "nameLocation": "153:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "148:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1540, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "148:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1543, + "mutability": "mutable", + "name": "y", + "nameLocation": "161:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "156:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1542, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "156:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "147:16:7" + }, + "returnParameters": { + "id": 1547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "z", + "nameLocation": "192:1:7", + "nodeType": "VariableDeclaration", + "scope": 1558, + "src": "187:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "187:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "186:8:7" + }, + "scope": 1613, + "src": "135:96:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "402:250:7", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1565, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "417:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "33", + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "421:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "417:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1601, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "605:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "610:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "605:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1609, + "nodeType": "IfStatement", + "src": "601:44:7", + "trueBody": { + "id": 1608, + "nodeType": "Block", + "src": "613:32:7", + "statements": [ + { + "expression": { + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1604, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "628:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "632:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "628:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "628:5:7" + } + ] + } + }, + "id": 1610, + "nodeType": "IfStatement", + "src": "413:232:7", + "trueBody": { + "id": 1600, + "nodeType": "Block", + "src": "424:171:7", + "statements": [ + { + "expression": { + "id": 1570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1568, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "439:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1569, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "443:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "439:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1571, + "nodeType": "ExpressionStatement", + "src": "439:5:7" + }, + { + "assignments": [ + 1573 + ], + "declarations": [ + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "x", + "nameLocation": "464:1:7", + "nodeType": "VariableDeclaration", + "scope": 1600, + "src": "459:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "459:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1579, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1574, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "468:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "468:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "468:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "459:18:7" + }, + { + "body": { + "id": 1598, + "nodeType": "Block", + "src": "506:78:7", + "statements": [ + { + "expression": { + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1583, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "525:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1584, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "529:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "525:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "525:5:7" + }, + { + "expression": { + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1587, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "549:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1588, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "554:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1589, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "558:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "562:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:9:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1593, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "553:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "567:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "553:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:19:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1597, + "nodeType": "ExpressionStatement", + "src": "549:19:7" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1580, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "499:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1581, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "503:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "499:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1599, + "nodeType": "WhileStatement", + "src": "492:92:7" + } + ] + } + } + ] + }, + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "358:4:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "y", + "nameLocation": "368:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "363:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "363:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "362:8:7" + }, + "returnParameters": { + "id": 1564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1563, + "mutability": "mutable", + "name": "z", + "nameLocation": "399:1:7", + "nodeType": "VariableDeclaration", + "scope": 1612, + "src": "394:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "394:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "393:8:7" + }, + "scope": 1613, + "src": "349:303:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1614, + "src": "115:540:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:622:7" + }, + "id": 7 + }, + "contracts/core/Pool.sol": { + "ast": { + "absolutePath": "contracts/core/Pool.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "Math": [ + 1613 + ], + "Pool": [ + 2103 + ], + "PoolFactory__InsufficientFunds": [ + 1624 + ], + "PoolFactory__InsufficientLiquidity": [ + 1622 + ], + "PoolFactory__NotOwner": [ + 1620 + ] + }, + "id": 2104, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1616, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 652, + "src": "60:55:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1617, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 730, + "src": "117:56:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/core/Math.sol", + "file": "./Math.sol", + "id": 1618, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2104, + "sourceUnit": 1614, + "src": "175:20:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "errorSelector": "0c18a1fc", + "id": 1620, + "name": "PoolFactory__NotOwner", + "nameLocation": "205:21:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [], + "src": "226:2:8" + }, + "src": "199:30:8" + }, + { + "errorSelector": "24217e51", + "id": 1622, + "name": "PoolFactory__InsufficientLiquidity", + "nameLocation": "237:34:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [], + "src": "271:2:8" + }, + "src": "231:43:8" + }, + { + "errorSelector": "5d125c46", + "id": 1624, + "name": "PoolFactory__InsufficientFunds", + "nameLocation": "282:30:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:2:8" + }, + "src": "276:39:8" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1625, + "name": "ERC20", + "nameLocations": [ + "336:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "336:5:8" + }, + "id": 1626, + "nodeType": "InheritanceSpecifier", + "src": "336:5:8" + } + ], + "canonicalName": "Pool", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2103, + "linearizedBaseContracts": [ + 2103, + 651, + 41, + 755, + 729, + 785 + ], + "name": "Pool", + "nameLocation": "328:4:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1629, + "libraryName": { + "id": 1627, + "name": "Math", + "nameLocations": [ + "355:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1613, + "src": "355:4:8" + }, + "nodeType": "UsingForDirective", + "src": "349:23:8", + "typeName": { + "id": 1628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 1631, + "mutability": "immutable", + "name": "factory", + "nameLocation": "406:7:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "380:33:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "380:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1633, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "436:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "420:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "465:6:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "449:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "449:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 1640, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nameLocation": "504:17:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "480:51:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "480:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "524:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "33", + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "530:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "reserveA", + "nameLocation": "556:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "540:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "540:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1644, + "mutability": "mutable", + "name": "reserveB", + "nameLocation": "587:8:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "571:24:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1646, + "mutability": "mutable", + "name": "totalLpShares", + "nameLocation": "620:13:8", + "nodeType": "VariableDeclaration", + "scope": 2103, + "src": "604:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 1658, + "nodeType": "Block", + "src": "687:39:8", + "statements": [ + { + "expression": { + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1653, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "698:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 1654, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "708:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "712:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "708:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "698:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1657, + "nodeType": "ExpressionStatement", + "src": "698:20:8" + } + ] + }, + "id": 1659, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4c6971756964697479546f6b656e73", + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "662:17:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0", + "typeString": "literal_string \"LiquidityTokens\"" + }, + "value": "LiquidityTokens" + }, + { + "hexValue": "4c50", + "id": 1650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3", + "typeString": "literal_string \"LP\"" + }, + "value": "LP" + } + ], + "id": 1651, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1648, + "name": "ERC20", + "nameLocations": [ + "656:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "656:5:8" + }, + "nodeType": "ModifierInvocation", + "src": "656:30:8" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "653:2:8" + }, + "returnParameters": { + "id": 1652, + "nodeType": "ParameterList", + "parameters": [], + "src": "687:0:8" + }, + "scope": 2103, + "src": "642:84:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1682, + "nodeType": "Block", + "src": "791:132:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1666, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1631, + "src": "806:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 1667, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "817:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "821:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "817:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "806:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "802:57:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1670, + "name": "PoolFactory__NotOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "836:21:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "836:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1672, + "nodeType": "RevertStatement", + "src": "829:30:8" + } + }, + { + "expression": { + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1674, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "872:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1675, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1661, + "src": "881:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "872:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1677, + "nodeType": "ExpressionStatement", + "src": "872:16:8" + }, + { + "expression": { + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1678, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1679, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "908:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "899:16:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1681, + "nodeType": "ExpressionStatement", + "src": "899:16:8" + } + ] + }, + "functionSelector": "f09a4016", + "id": 1683, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "743:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "756:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "748:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "773:7:8", + "nodeType": "VariableDeclaration", + "scope": 1683, + "src": "765:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "747:34:8" + }, + "returnParameters": { + "id": 1665, + "nodeType": "ParameterList", + "parameters": [], + "src": "791:0:8" + }, + "scope": 2103, + "src": "734:189:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1698, + "nodeType": "Block", + "src": "994:70:8", + "statements": [ + { + "expression": { + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1690, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "1005:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1691, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1016:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1005:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "1005:20:8" + }, + { + "expression": { + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1694, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "1036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1695, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "1047:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1036:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ExpressionStatement", + "src": "1036:20:8" + } + ] + }, + "id": 1699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "940:7:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "956:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "948:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "948:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1699, + "src": "967:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "967:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "947:38:8" + }, + "returnParameters": { + "id": 1689, + "nodeType": "ParameterList", + "parameters": [], + "src": "994:0:8" + }, + "scope": 2103, + "src": "931:133:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "1136:1104:8", + "statements": [ + { + "assignments": [ + 1707, + 1709 + ], + "declarations": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_reserveA", + "nameLocation": "1156:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1148:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1148:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1709, + "mutability": "mutable", + "name": "_reserveB", + "nameLocation": "1175:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1167:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1712, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1710, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "1188:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1188:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1147:59:8" + }, + { + "assignments": [ + 1714 + ], + "declarations": [ + { + "constant": false, + "id": 1714, + "mutability": "mutable", + "name": "_balanceA", + "nameLocation": "1225:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1217:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1217:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1724, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1721, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1270:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1262:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1262:7:8", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1262:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1716, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "1244:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1715, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1237:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1252:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1237:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1237:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1217:59:8" + }, + { + "assignments": [ + 1726 + ], + "declarations": [ + { + "constant": false, + "id": 1726, + "mutability": "mutable", + "name": "_balanceB", + "nameLocation": "1295:9:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1287:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1287:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1736, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1733, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1340:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1332:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:8", + "typeDescriptions": {} + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1332:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1728, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "1314:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1727, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "1307:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1322:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "1307:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1307:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1287:59:8" + }, + { + "assignments": [ + 1738 + ], + "declarations": [ + { + "constant": false, + "id": 1738, + "mutability": "mutable", + "name": "depositOfTokenA", + "nameLocation": "1365:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1357:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1742, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1739, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "1383:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1740, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1395:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1383:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1357:47:8" + }, + { + "assignments": [ + 1744 + ], + "declarations": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "depositOfTokenB", + "nameLocation": "1423:15:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1415:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1415:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1748, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1745, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "1441:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1746, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1453:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1441:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1415:47:8" + }, + { + "assignments": [ + 1750 + ], + "declarations": [ + { + "constant": false, + "id": 1750, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1483:12:8", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1475:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1475:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1753, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1751, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "1498:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1498:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1475:36:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1754, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1526:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1542:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1526:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1796, + "nodeType": "Block", + "src": "1828:188:8", + "statements": [ + { + "expression": { + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1778, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1843:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1781, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1883:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1782, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1883:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1784, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1882:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1785, + "name": "_reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "1917:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1882:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1787, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1946:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1788, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "1964:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1946:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1790, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1945:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1791, + "name": "_reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "1980:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1945:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1779, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1855:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1860:3:8", + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 1558, + "src": "1855:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:149:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1843:161:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1795, + "nodeType": "ExpressionStatement", + "src": "1843:161:8" + } + ] + }, + "id": 1797, + "nodeType": "IfStatement", + "src": "1522:494:8", + "trueBody": { + "id": 1777, + "nodeType": "Block", + "src": "1545:277:8", + "statements": [ + { + "expression": { + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1757, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "1560:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1760, + "name": "depositOfTokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1738, + "src": "1599:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1761, + "name": "depositOfTokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "1617:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1599:33:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1758, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1613, + "src": "1589:4:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$1613_$", + "typeString": "type(library Math)" + } + }, + "id": 1759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1594:4:8", + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 1612, + "src": "1589:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "id": 1764, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1654:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1765, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1653:19:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1589:83:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1560:112:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1768, + "nodeType": "ExpressionStatement", + "src": "1560:112:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "31", + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1701:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1693:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1693:7:8", + "typeDescriptions": {} + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1693:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1774, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "1705:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1769, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "1687:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1687:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1776, + "nodeType": "ExpressionStatement", + "src": "1687:36:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1798, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2030:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2043:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2030:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1804, + "nodeType": "IfStatement", + "src": "2026:63:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1801, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "2053:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2053:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1803, + "nodeType": "RevertStatement", + "src": "2046:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "id": 1806, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1701, + "src": "2106:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1807, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1704, + "src": "2111:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1805, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "2100:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2100:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1809, + "nodeType": "ExpressionStatement", + "src": "2100:21:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1811, + "name": "_balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "2140:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1812, + "name": "_balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "2151:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "2132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1814, + "nodeType": "ExpressionStatement", + "src": "2132:29:8" + } + ] + }, + "functionSelector": "6a627842", + "id": 1816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "1081:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1094:3:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1086:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1086:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1085:13:8" + }, + "returnParameters": { + "id": 1705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "1125:9:8", + "nodeType": "VariableDeclaration", + "scope": 1816, + "src": "1117:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1116:19:8" + }, + "scope": 2103, + "src": "1072:1168:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1957, + "nodeType": "Block", + "src": "2368:1169:8", + "statements": [ + { + "assignments": [ + 1826, + 1828 + ], + "declarations": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "2388:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2380:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2380:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1828, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "2407:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2399:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1831, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1829, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "2420:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2379:59:8" + }, + { + "assignments": [ + 1833 + ], + "declarations": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "2472:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2464:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2464:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "id": 1834, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "2482:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2464:24:8" + }, + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "2522:7:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2514:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1839, + "initialValue": { + "id": 1838, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "2532:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2514:24:8" + }, + { + "assignments": [ + 1841 + ], + "declarations": [ + { + "constant": false, + "id": 1841, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "2569:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2564:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1851, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2614:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2606:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2606:7:8", + "typeDescriptions": {} + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1843, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "2587:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1842, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2580:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2596:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2580:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2580:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:56:8" + }, + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "2636:8:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2631:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2631:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1863, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1860, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2673:7:8", + "typeDescriptions": {} + } + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2673:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1855, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "2654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1854, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "2647:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2663:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "2647:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2647:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2631:56:8" + }, + { + "assignments": [ + 1865 + ], + "declarations": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "liquidity", + "nameLocation": "2703:9:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2698:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1864, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2698:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1869, + "initialValue": { + "arguments": [ + { + "id": 1867, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "2725:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1866, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2715:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2715:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:30:8" + }, + { + "assignments": [ + 1871 + ], + "declarations": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "2749:12:8", + "nodeType": "VariableDeclaration", + "scope": 1957, + "src": "2741:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2741:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1874, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1872, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "2764:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2764:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2741:36:8" + }, + { + "expression": { + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1875, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "2866:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1876, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2877:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1877, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "2889:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2877:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2876:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1880, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "2901:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2876:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1883, + "nodeType": "ExpressionStatement", + "src": "2866:47:8" + }, + { + "expression": { + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1884, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "2972:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1885, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2983:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1886, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2995:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2983:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1888, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2982:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1889, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "3007:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2982:37:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2972:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1892, + "nodeType": "ExpressionStatement", + "src": "2972:47:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1893, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3082:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3093:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3082:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1896, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3098:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3109:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3098:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3082:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1903, + "nodeType": "IfStatement", + "src": "3078:90:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1900, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3132:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3132:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1902, + "nodeType": "RevertStatement", + "src": "3125:43:8" + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1907, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3193:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3185:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3185:7:8", + "typeDescriptions": {} + } + }, + "id": 1908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3185:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1909, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3200:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1904, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3179:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3179:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "3179:31:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3246:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1917, + "name": "amountA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1821, + "src": "3250:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1913, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1912, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3221:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3237:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3221:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3221:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "3221:37:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1924, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1818, + "src": "3294:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1925, + "name": "amountB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "3298:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1921, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3276:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1920, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3269:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3285:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "3269:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3269:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "3269:37:8" + }, + { + "expression": { + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1928, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3317:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1935, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3362:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3354:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3354:7:8", + "typeDescriptions": {} + } + }, + "id": 1936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3354:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1930, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1929, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3328:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3344:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3328:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3328:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3317:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1939, + "nodeType": "ExpressionStatement", + "src": "3317:51:8" + }, + { + "expression": { + "id": 1950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1940, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3379:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1947, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3424:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3416:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1945, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3416:7:8", + "typeDescriptions": {} + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 1942, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "3397:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1941, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3390:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3406:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "3390:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3379:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1951, + "nodeType": "ExpressionStatement", + "src": "3379:51:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1953, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1841, + "src": "3451:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1954, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "3461:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1952, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "3443:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3443:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1956, + "nodeType": "ExpressionStatement", + "src": "3443:27:8" + } + ] + }, + "functionSelector": "74a0f94b", + "id": 1958, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "2270:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "to", + "nameLocation": "2306:2:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2298:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2298:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2287:28:8" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1821, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "2342:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2334:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "2359:7:8", + "nodeType": "VariableDeclaration", + "scope": 1958, + "src": "2351:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2351:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:34:8" + }, + "scope": 2103, + "src": "2261:1276:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2064, + "nodeType": "Block", + "src": "3680:778:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1967, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3695:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3695:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1970, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3714:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3728:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3714:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3695:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1977, + "nodeType": "IfStatement", + "src": "3691:92:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1974, + "name": "PoolFactory__InsufficientFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1624, + "src": "3751:30:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3751:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "RevertStatement", + "src": "3744:39:8" + } + }, + { + "assignments": [ + 1979, + 1981 + ], + "declarations": [ + { + "constant": false, + "id": 1979, + "mutability": "mutable", + "name": "_reserve0", + "nameLocation": "3803:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3795:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "_reserve1", + "nameLocation": "3822:9:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3814:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3814:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1982, + "name": "getTokenReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2077, + "src": "3835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3835:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3794:59:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1985, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "3868:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1986, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1979, + "src": "3881:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1988, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "3894:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1989, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "3907:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3894:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3868:48:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1995, + "nodeType": "IfStatement", + "src": "3864:110:8", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1992, + "name": "PoolFactory__InsufficientLiquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "3938:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3938:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1994, + "nodeType": "RevertStatement", + "src": "3931:43:8" + } + }, + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "balanceA", + "nameLocation": "3993:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "3985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1998, + "nodeType": "VariableDeclarationStatement", + "src": "3985:16:8" + }, + { + "assignments": [ + 2000 + ], + "declarations": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "balanceB", + "nameLocation": "4020:8:8", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "4012:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4012:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2001, + "nodeType": "VariableDeclarationStatement", + "src": "4012:16:8" + }, + { + "id": 2058, + "nodeType": "Block", + "src": "4039:372:8", + "statements": [ + { + "assignments": [ + 2003 + ], + "declarations": [ + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "4062:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4054:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2005, + "initialValue": { + "id": 2004, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4072:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4054:24:8" + }, + { + "assignments": [ + 2007 + ], + "declarations": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "4101:7:8", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "4093:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4093:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2009, + "initialValue": { + "id": 2008, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4111:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:24:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2010, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4136:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4149:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4136:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2021, + "nodeType": "IfStatement", + "src": "4132:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2017, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4177:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2018, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "4181:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2014, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4159:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2013, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4152:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4168:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4152:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4152:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2020, + "nodeType": "ExpressionStatement", + "src": "4152:40:8" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2022, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4211:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4224:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4211:14:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2033, + "nodeType": "IfStatement", + "src": "4207:60:8", + "trueBody": { + "expression": { + "arguments": [ + { + "id": 2029, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1964, + "src": "4252:2:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2030, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1962, + "src": "4256:10:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 2026, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4234:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2025, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4227:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4243:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "4227:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4227:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2032, + "nodeType": "ExpressionStatement", + "src": "4227:40:8" + } + }, + { + "expression": { + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2034, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4282:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2041, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4327:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4319:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4319:7:8", + "typeDescriptions": {} + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2036, + "name": "_tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "4300:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2035, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4293:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4309:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4293:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4293:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4282:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2045, + "nodeType": "ExpressionStatement", + "src": "4282:51:8" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2046, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4348:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 2053, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4393:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4385:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4385:7:8", + "typeDescriptions": {} + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2048, + "name": "_tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2007, + "src": "4366:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2047, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4359:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:15:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4375:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4359:25:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4359:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4348:51:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "4348:51:8" + } + ] + }, + { + "expression": { + "arguments": [ + { + "id": 2060, + "name": "balanceA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1997, + "src": "4431:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2061, + "name": "balanceB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "4441:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2059, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4423:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4423:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2063, + "nodeType": "ExpressionStatement", + "src": "4423:27:8" + } + ] + }, + "functionSelector": "6d9a640a", + "id": 2065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "3554:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1960, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "3577:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3569:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3569:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1962, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "3606:10:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3598:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3598:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1964, + "mutability": "mutable", + "name": "to", + "nameLocation": "3635:2:8", + "nodeType": "VariableDeclaration", + "scope": 2065, + "src": "3627:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3627:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3558:112:8" + }, + "returnParameters": { + "id": 1966, + "nodeType": "ParameterList", + "parameters": [], + "src": "3680:0:8" + }, + "scope": 2103, + "src": "3545:913:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2076, + "nodeType": "Block", + "src": "4533:46:8", + "statements": [ + { + "expression": { + "components": [ + { + "id": 2072, + "name": "reserveA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "4552:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2073, + "name": "reserveB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "4562:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4551:20:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 2071, + "id": 2075, + "nodeType": "Return", + "src": "4544:27:8" + } + ] + }, + "functionSelector": "b9cf5005", + "id": 2077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "4475:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [], + "src": "4491:2:8" + }, + "returnParameters": { + "id": 2071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2068, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4515:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4515:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2070, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2077, + "src": "4524:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2069, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4524:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4514:18:8" + }, + "scope": 2103, + "src": "4466:113:8", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2101, + "nodeType": "Block", + "src": "4653:145:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2087, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4719:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4711:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4711:7:8", + "typeDescriptions": {} + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4711:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2082, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1633, + "src": "4693:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2081, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4686:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4701:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4686:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4686:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4773:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Pool_$2103", + "typeString": "contract Pool" + } + ], + "id": 2095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4765:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4765:7:8", + "typeDescriptions": {} + } + }, + "id": 2097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4765:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 2091, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4747:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "4740:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:14:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4755:9:8", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "4740:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4740:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2080, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1699, + 458 + ], + "referencedDeclaration": 1699, + "src": "4664:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4664:126:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2100, + "nodeType": "ExpressionStatement", + "src": "4664:126:8" + } + ] + }, + "functionSelector": "fff6cae9", + "id": 2102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sync", + "nameLocation": "4637:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [], + "src": "4641:2:8" + }, + "returnParameters": { + "id": 2079, + "nodeType": "ParameterList", + "parameters": [], + "src": "4653:0:8" + }, + "scope": 2103, + "src": "4628:170:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2104, + "src": "319:4482:8", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40, + 1620, + 1622, + 1624 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:4768:8" + }, + "id": 8 + }, + "contracts/core/interfaces/IFactory.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IFactory.sol", + "exportedSymbols": { + "IFactory": [ + 2124 + ] + }, + "id": 2125, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2105, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IFactory", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2124, + "linearizedBaseContracts": [ + 2124 + ], + "name": "IFactory", + "nameLocation": "70:8:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "4a70f02e", + "id": 2114, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenPairs", + "nameLocation": "95:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "127:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "119:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "152:6:9", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "144:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "108:57:9" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2114, + "src": "184:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "184:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "183:9:9" + }, + "scope": 2124, + "src": "86:107:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "e3433615", + "id": 2123, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPool", + "nameLocation": "210:10:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "239:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "231:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "264:6:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "256:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "220:57:9" + }, + "returnParameters": { + "id": 2122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2121, + "mutability": "mutable", + "name": "poolPair", + "nameLocation": "304:8:9", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "296:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "295:18:9" + }, + "scope": 2124, + "src": "201:113:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2125, + "src": "60:257:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:284:9" + }, + "id": 9 + }, + "contracts/core/interfaces/IPool.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IPool.sol", + "exportedSymbols": { + "IPool": [ + 2166 + ] + }, + "id": 2167, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2126, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2166, + "linearizedBaseContracts": [ + 2166 + ], + "name": "IPool", + "nameLocation": "70:5:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "f09a4016", + "id": 2133, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nameLocation": "189:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2128, + "mutability": "mutable", + "name": "_tokenA", + "nameLocation": "202:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "194:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "194:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "_tokenB", + "nameLocation": "219:7:10", + "nodeType": "VariableDeclaration", + "scope": 2133, + "src": "211:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "193:34:10" + }, + "returnParameters": { + "id": 2132, + "nodeType": "ParameterList", + "parameters": [], + "src": "236:0:10" + }, + "scope": 2166, + "src": "180:57:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6a627842", + "id": 2140, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "254:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2135, + "mutability": "mutable", + "name": "_to", + "nameLocation": "267:3:10", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "259:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "259:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "258:13:10" + }, + "returnParameters": { + "id": 2139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "290:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "290:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "289:9:10" + }, + "scope": 2166, + "src": "245:54:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "74a0f94b", + "id": 2149, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "liquidateLpTokens", + "nameLocation": "316:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "mutability": "mutable", + "name": "to", + "nameLocation": "352:2:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "344:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "333:28:10" + }, + "returnParameters": { + "id": 2148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "amountA", + "nameLocation": "388:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "380:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2147, + "mutability": "mutable", + "name": "amountB", + "nameLocation": "405:7:10", + "nodeType": "VariableDeclaration", + "scope": 2149, + "src": "397:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "397:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:34:10" + }, + "scope": 2166, + "src": "307:107:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b9cf5005", + "id": 2156, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getTokenReserves", + "nameLocation": "431:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2150, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:10" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2152, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "473:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2156, + "src": "482:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "482:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "472:18:10" + }, + "scope": 2166, + "src": "422:69:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "6d9a640a", + "id": 2165, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "508:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "amount0Out", + "nameLocation": "531:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "523:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2160, + "mutability": "mutable", + "name": "amount1Out", + "nameLocation": "560:10:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "552:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "552:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2162, + "mutability": "mutable", + "name": "to", + "nameLocation": "589:2:10", + "nodeType": "VariableDeclaration", + "scope": 2165, + "src": "581:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "581:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "512:112:10" + }, + "returnParameters": { + "id": 2164, + "nodeType": "ParameterList", + "parameters": [], + "src": "633:0:10" + }, + "scope": 2166, + "src": "499:135:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2167, + "src": "60:577:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:604:10" + }, + "id": 10 + }, + "contracts/core/interfaces/IWedu.sol": { + "ast": { + "absolutePath": "contracts/core/interfaces/IWedu.sol", + "exportedSymbols": { + "IWEDU": [ + 2186 + ] + }, + "id": 2187, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2168, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:11" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IWEDU", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 2186, + "linearizedBaseContracts": [ + 2186 + ], + "name": "IWEDU", + "nameLocation": "70:5:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 2171, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "92:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [], + "src": "99:2:11" + }, + "returnParameters": { + "id": 2170, + "nodeType": "ParameterList", + "parameters": [], + "src": "118:0:11" + }, + "scope": 2186, + "src": "83:36:11", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "a9059cbb", + "id": 2180, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "136:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2176, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2173, + "mutability": "mutable", + "name": "to", + "nameLocation": "153:2:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "145:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2175, + "mutability": "mutable", + "name": "value", + "nameLocation": "162:5:11", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "157:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2174, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "157:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "144:24:11" + }, + "returnParameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "187:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2177, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "187:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "186:6:11" + }, + "scope": 2186, + "src": "127:66:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "2e1a7d4d", + "id": 2185, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "210:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2185, + "src": "219:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "219:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "218:6:11" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [], + "src": "233:0:11" + }, + "scope": 2186, + "src": "201:33:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2187, + "src": "60:177:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:204:11" + }, + "id": 11 + }, + "contracts/core/libraries/Library.sol": { + "ast": { + "absolutePath": "contracts/core/libraries/Library.sol", + "exportedSymbols": { + "DefiLibrary": [ + 2295 + ], + "PoolFactory__IdenticalAddress": [ + 2190 + ], + "PoolFactory__ZeroAddress": [ + 2192 + ] + }, + "id": 2296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2188, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "33:23:12" + }, + { + "errorSelector": "4bea99d9", + "id": 2190, + "name": "PoolFactory__IdenticalAddress", + "nameLocation": "66:29:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "95:2:12" + }, + "src": "60:38:12" + }, + { + "errorSelector": "74b959e9", + "id": 2192, + "name": "PoolFactory__ZeroAddress", + "nameLocation": "106:24:12", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2191, + "nodeType": "ParameterList", + "parameters": [], + "src": "130:2:12" + }, + "src": "100:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DefiLibrary", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2295, + "linearizedBaseContracts": [ + 2295 + ], + "name": "DefiLibrary", + "nameLocation": "145:11:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2235, + "nodeType": "Block", + "src": "397:341:12", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2203, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "412:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2204, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "422:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "412:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2209, + "nodeType": "IfStatement", + "src": "408:60:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2206, + "name": "PoolFactory__IdenticalAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "437:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "437:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2208, + "nodeType": "RevertStatement", + "src": "430:38:12" + } + }, + { + "expression": { + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 2210, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "480:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2211, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2201, + "src": "488:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2212, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "479:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2213, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "498:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2214, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "507:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "498:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "id": 2219, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "562:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2220, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "570:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "561:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "id": 2222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "498:79:12", + "trueExpression": { + "components": [ + { + "id": 2216, + "name": "tokenA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "530:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2217, + "name": "tokenB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "538:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2218, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "529:16:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_address_$", + "typeString": "tuple(address,address)" + } + }, + "src": "479:98:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "479:98:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2225, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "675:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "693:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "685:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "685:7:12", + "typeDescriptions": {} + } + }, + "id": 2229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "685:10:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "675:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2234, + "nodeType": "IfStatement", + "src": "671:59:12", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "PoolFactory__ZeroAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2192, + "src": "704:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "697:33:12" + } + } + ] + }, + "id": 2236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sortTokens", + "nameLocation": "274:10:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "tokenA", + "nameLocation": "303:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "295:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2196, + "mutability": "mutable", + "name": "tokenB", + "nameLocation": "328:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "320:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "284:57:12" + }, + "returnParameters": { + "id": 2202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "token0", + "nameLocation": "373:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "365:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2201, + "mutability": "mutable", + "name": "token1", + "nameLocation": "389:6:12", + "nodeType": "VariableDeclaration", + "scope": 2236, + "src": "381:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2200, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "381:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "364:32:12" + }, + "scope": 2295, + "src": "265:473:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2293, + "nodeType": "Block", + "src": "1077:437:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2248, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1096:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1107:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1096:12:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:45:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 2247, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1088:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1088:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2253, + "nodeType": "ExpressionStatement", + "src": "1088:68:12" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2255, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1189:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1189:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2258, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1206:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1219:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:14:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1189:31:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1235:42:12", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 2254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1167:7:12", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1167:121:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2264, + "nodeType": "ExpressionStatement", + "src": "1167:121:12" + }, + { + "assignments": [ + 2266 + ], + "declarations": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "amountInWithFee", + "nameLocation": "1304:15:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1299:20:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1299:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "amountIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2238, + "src": "1322:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "393937", + "id": 2268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:3:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_997_by_1", + "typeString": "int_const 997" + }, + "value": "997" + }, + "src": "1322:14:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1299:37:12" + }, + { + "assignments": [ + 2272 + ], + "declarations": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "numerator", + "nameLocation": "1352:9:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1347:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2271, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1347:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2276, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2273, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1364:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2274, + "name": "reserveOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "1382:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1364:28:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1347:45:12" + }, + { + "assignments": [ + 2278 + ], + "declarations": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "1408:11:12", + "nodeType": "VariableDeclaration", + "scope": 2293, + "src": "1403:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2277, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1403:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2286, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2279, + "name": "reserveIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "1423:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "31303030", + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1435:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "src": "1423:16:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1422:18:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "id": 2283, + "name": "amountInWithFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2266, + "src": "1444:15:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2284, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1443:17:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1422:38:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1403:57:12" + }, + { + "expression": { + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2287, + "name": "amountOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "1471:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2288, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1483:9:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2289, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2278, + "src": "1495:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:23:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1471:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2292, + "nodeType": "ExpressionStatement", + "src": "1471:35:12" + } + ] + }, + "id": 2294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAmountOut", + "nameLocation": "943:12:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "mutability": "mutable", + "name": "amountIn", + "nameLocation": "971:8:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "966:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "966:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "reserveIn", + "nameLocation": "995:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "990:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "990:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "reserveOut", + "nameLocation": "1020:10:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1015:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2241, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1015:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "955:82:12" + }, + "returnParameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "amountOut", + "nameLocation": "1066:9:12", + "nodeType": "VariableDeclaration", + "scope": 2294, + "src": "1061:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1061:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:16:12" + }, + "scope": 2295, + "src": "934:580:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2296, + "src": "137:1380:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:1484:12" + }, + "id": 12 + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol", + "exportedSymbols": { + "AppleToken": [ + 2321 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2322, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2298, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2322, + "sourceUnit": 652, + "src": "61:55:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2299, + "name": "ERC20", + "nameLocations": [ + "143:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "143:5:13" + }, + "id": 2300, + "nodeType": "InheritanceSpecifier", + "src": "143:5:13" + } + ], + "canonicalName": "AppleToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2321, + "linearizedBaseContracts": [ + 2321, + 651, + 41, + 755, + 729, + 785 + ], + "name": "AppleToken", + "nameLocation": "129:10:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2307, + "nodeType": "Block", + "src": "192:2:13", + "statements": [] + }, + "id": 2308, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4170706c65", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1", + "typeString": "literal_string \"Apple\"" + }, + "value": "Apple" + }, + { + "hexValue": "415054", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "185:5:13", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1", + "typeString": "literal_string \"APT\"" + }, + "value": "APT" + } + ], + "id": 2305, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2302, + "name": "ERC20", + "nameLocations": [ + "170:5:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "170:5:13" + }, + "nodeType": "ModifierInvocation", + "src": "170:21:13" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "167:2:13" + }, + "returnParameters": { + "id": 2306, + "nodeType": "ParameterList", + "parameters": [], + "src": "192:0:13" + }, + "scope": 2321, + "src": "156:38:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2319, + "nodeType": "Block", + "src": "239:44:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2314, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "256:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "260:6:13", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "256:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2316, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "268:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2313, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "250:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "250:25:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2318, + "nodeType": "ExpressionStatement", + "src": "250:25:13" + } + ] + }, + "functionSelector": "a0712d68", + "id": 2320, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "211:4:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "amount", + "nameLocation": "224:6:13", + "nodeType": "VariableDeclaration", + "scope": 2320, + "src": "216:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "216:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "215:16:13" + }, + "returnParameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [], + "src": "239:0:13" + }, + "scope": 2321, + "src": "202:81:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2322, + "src": "120:199:13", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:286:13" + }, + "id": 13 + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol", + "exportedSymbols": { + "CherryToken": [ + 2347 + ], + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ] + }, + "id": 2348, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2323, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:14" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2324, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2348, + "sourceUnit": 652, + "src": "61:55:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2325, + "name": "ERC20", + "nameLocations": [ + "144:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "144:5:14" + }, + "id": 2326, + "nodeType": "InheritanceSpecifier", + "src": "144:5:14" + } + ], + "canonicalName": "CherryToken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2347, + "linearizedBaseContracts": [ + 2347, + 651, + 41, + 755, + 729, + 785 + ], + "name": "CherryToken", + "nameLocation": "129:11:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2333, + "nodeType": "Block", + "src": "194:2:14", + "statements": [] + }, + "id": 2334, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436865727279", + "id": 2329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "177:8:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f", + "typeString": "literal_string \"Cherry\"" + }, + "value": "Cherry" + }, + { + "hexValue": "434854", + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "187:5:14", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18", + "typeString": "literal_string \"CHT\"" + }, + "value": "CHT" + } + ], + "id": 2331, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2328, + "name": "ERC20", + "nameLocations": [ + "171:5:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "171:5:14" + }, + "nodeType": "ModifierInvocation", + "src": "171:22:14" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2327, + "nodeType": "ParameterList", + "parameters": [], + "src": "168:2:14" + }, + "returnParameters": { + "id": 2332, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:14" + }, + "scope": 2347, + "src": "157:39:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2345, + "nodeType": "Block", + "src": "241:44:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2340, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "258:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "262:6:14", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "258:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2342, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2336, + "src": "270:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2339, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "252:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2344, + "nodeType": "ExpressionStatement", + "src": "252:25:14" + } + ] + }, + "functionSelector": "a0712d68", + "id": 2346, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "213:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2336, + "mutability": "mutable", + "name": "amount", + "nameLocation": "226:6:14", + "nodeType": "VariableDeclaration", + "scope": 2346, + "src": "218:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "218:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "217:16:14" + }, + "returnParameters": { + "id": 2338, + "nodeType": "ParameterList", + "parameters": [], + "src": "241:0:14" + }, + "scope": 2347, + "src": "204:81:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2348, + "src": "120:201:14", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:288:14" + }, + "id": 14 + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "ast": { + "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol", + "exportedSymbols": { + "Context": [ + 785 + ], + "ERC20": [ + 651 + ], + "IERC20": [ + 729 + ], + "IERC20Errors": [ + 41 + ], + "IERC20Metadata": [ + 755 + ], + "WrappedEdutoken": [ + 2373 + ] + }, + "id": 2374, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2349, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "33:24:15" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2350, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2374, + "sourceUnit": 652, + "src": "61:55:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2351, + "name": "ERC20", + "nameLocations": [ + "148:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "148:5:15" + }, + "id": 2352, + "nodeType": "InheritanceSpecifier", + "src": "148:5:15" + } + ], + "canonicalName": "WrappedEdutoken", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 2373, + "linearizedBaseContracts": [ + 2373, + 651, + 41, + 755, + 729, + 785 + ], + "name": "WrappedEdutoken", + "nameLocation": "129:15:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2359, + "nodeType": "Block", + "src": "203:2:15", + "statements": [] + }, + "id": 2360, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "57726170706564456475", + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "181:12:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479", + "typeString": "literal_string \"WrappedEdu\"" + }, + "value": "WrappedEdu" + }, + { + "hexValue": "57454455", + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "195:6:15", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03", + "typeString": "literal_string \"WEDU\"" + }, + "value": "WEDU" + } + ], + "id": 2357, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 2354, + "name": "ERC20", + "nameLocations": [ + "175:5:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 651, + "src": "175:5:15" + }, + "nodeType": "ModifierInvocation", + "src": "175:27:15" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2353, + "nodeType": "ParameterList", + "parameters": [], + "src": "172:2:15" + }, + "returnParameters": { + "id": 2358, + "nodeType": "ParameterList", + "parameters": [], + "src": "203:0:15" + }, + "scope": 2373, + "src": "161:44:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2371, + "nodeType": "Block", + "src": "261:44:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2366, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "278:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "282:6:15", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "278:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2368, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2362, + "src": "290:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2365, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 491, + "src": "272:5:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "272:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2370, + "nodeType": "ExpressionStatement", + "src": "272:25:15" + } + ] + }, + "functionSelector": "b6b55f25", + "id": 2372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "222:7:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2362, + "mutability": "mutable", + "name": "amount", + "nameLocation": "238:6:15", + "nodeType": "VariableDeclaration", + "scope": 2372, + "src": "230:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "230:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "229:16:15" + }, + "returnParameters": { + "id": 2364, + "nodeType": "ParameterList", + "parameters": [], + "src": "261:0:15" + }, + "scope": 2373, + "src": "213:92:15", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2374, + "src": "120:221:15", + "usedErrors": [ + 11, + 16, + 21, + 30, + 35, + 40 + ], + "usedEvents": [ + 663, + 672 + ] + } + ], + "src": "33:308:15" + }, + "id": 15 + } + }, + "contracts": { + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ERC20": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "IERC20": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "IERC20Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "contracts/core/Factory.sol": { + "PoolFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotSetter", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__PoolExists", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "addToFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiverSetter", + "type": "address" + } + ], + "name": "removeFromFeeReceiverSetter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeReceiver", + "type": "address" + } + ], + "name": "setFeeReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_832": { + "entryPoint": null, + "id": 832, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 221, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 242, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 180, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 143, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 198, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1199:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "922:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "968:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "970:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "970:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "970:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "943:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "952:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "939:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "939:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "964:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "935:32:16" + }, + "nodeType": "YulIf", + "src": "932:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1061:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1076:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1090:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1080:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1105:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1151:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1162:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1147:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1147:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1171:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1115:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1115:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1105:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "892:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "903:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "915:6:16", + "type": "" + } + ], + "src": "845:351:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@addToFeeReceiverSetter_986": { + "entryPoint": 571, + "id": 986, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@checkIfSetter_1018": { + "entryPoint": 2042, + "id": 1018, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createPool_942": { + "entryPoint": 671, + "id": 942, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getTokenPairs_958": { + "entryPoint": 404, + "id": 958, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@removeFromFeeReceiverSetter_1001": { + "entryPoint": 303, + "id": 1001, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setFeeReceiver_971": { + "entryPoint": 1965, + "id": 971, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 2279, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 2302, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 2352, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2423, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": { + "entryPoint": 2522, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 2549, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2440, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 2597, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": { + "entryPoint": 2642, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2233, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2201, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_address": { + "entryPoint": 2502, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint160": { + "entryPoint": 2482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2196, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_96": { + "entryPoint": 2469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 2253, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:3663:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "907:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "953:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "955:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "955:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "955:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "928:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "937:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "924:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "924:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "949:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "920:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "920:32:16" + }, + "nodeType": "YulIf", + "src": "917:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1046:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1061:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1075:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1065:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1090:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1125:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1121:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1121:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1145:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1100:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1100:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1090:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "877:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "888:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "900:6:16", + "type": "" + } + ], + "src": "841:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1259:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1305:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1307:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1307:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1307:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1280:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1289:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1276:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1276:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1301:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:32:16" + }, + "nodeType": "YulIf", + "src": "1269:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1398:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1413:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1417:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1442:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1477:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1488:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1473:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1473:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1497:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1452:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1452:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1442:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1525:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1540:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1554:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1544:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1570:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1605:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1616:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1601:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1601:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1625:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1580:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1580:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1570:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1221:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1232:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1244:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1252:6:16", + "type": "" + } + ], + "src": "1176:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1738:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1761:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1743:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1743:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1731:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1731:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1731:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1709:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1716:3:16", + "type": "" + } + ], + "src": "1656:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1878:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1888:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1900:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1911:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1896:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1896:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1888:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1968:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1981:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1992:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1977:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1977:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "1924:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "1924:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1924:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1850:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1862:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1873:4:16", + "type": "" + } + ], + "src": "1780:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2050:52:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2060:35:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2085:2:16", + "type": "", + "value": "96" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2089:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2081:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2081:14:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "2060:8:16" + } + ] + } + ] + }, + "name": "shift_left_96", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2031:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "2041:8:16", + "type": "" + } + ], + "src": "2008:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2155:47:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2165:31:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2190:5:16" + } + ], + "functionName": { + "name": "shift_left_96", + "nodeType": "YulIdentifier", + "src": "2176:13:16" + }, + "nodeType": "YulFunctionCall", + "src": "2176:20:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2165:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2137:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2147:7:16", + "type": "" + } + ], + "src": "2108:94:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2255:53:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2265:37:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2296:5:16" + } + ], + "functionName": { + "name": "leftAlign_t_uint160", + "nodeType": "YulIdentifier", + "src": "2276:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2276:26:16" + }, + "variableNames": [ + { + "name": "aligned", + "nodeType": "YulIdentifier", + "src": "2265:7:16" + } + ] + } + ] + }, + "name": "leftAlign_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2237:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nodeType": "YulTypedName", + "src": "2247:7:16", + "type": "" + } + ], + "src": "2208:100:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2397:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2414:3:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2457:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "2439:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2439:24:16" + } + ], + "functionName": { + "name": "leftAlign_t_address", + "nodeType": "YulIdentifier", + "src": "2419:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "2419:45:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2407:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2407:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2407:58:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2385:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2392:3:16", + "type": "" + } + ], + "src": "2314:157:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2621:253:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2694:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2703:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2632:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2632:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2632:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2716:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2727:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2732:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2723:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2723:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2716:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2807:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2816:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "2745:61:16" + }, + "nodeType": "YulFunctionCall", + "src": "2745:75:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2745:75:16" + }, + { + "nodeType": "YulAssignment", + "src": "2829:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2840:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2845:2:16", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:12:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2829:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2858:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2865:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2858:3:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2592:3:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2598:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2606:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2617:3:16", + "type": "" + } + ], + "src": "2477:397:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3006:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3016:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3028:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3039:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3024:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3016:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3096:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3109:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3120:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3105:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3105:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3052:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3052:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3052:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3190:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3201:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3186:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3186:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3133:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2970:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2982:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2990:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3001:4:16", + "type": "" + } + ], + "src": "2880:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3372:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3382:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3394:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3405:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3390:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3382:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3462:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3475:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3486:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3471:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3471:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3418:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3418:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3543:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3556:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3567:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3552:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3552:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3499:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3499:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3499:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3625:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3638:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3649:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3634:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3634:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "3581:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3581:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3581:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3328:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3340:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3348:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3356:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3367:4:16", + "type": "" + } + ], + "src": "3218:442:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ", + "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o" + }, + "methodIdentifiers": { + "addToFeeReceiverSetter(address)": "5ac40ab3", + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e", + "removeFromFeeReceiverSetter(address)": "48397023", + "setFeeReceiver(address)": "efdcd974" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/LiquidityProvider.sol": { + "LiquidityProvider": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_factoryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_WEDU", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientAmount", + "type": "error" + }, + { + "inputs": [], + "name": "LiquidityProvider__InsufficientOutputAmount", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__IdenticalAddress", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__ZeroAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOfTokenADesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOfTokenBDesired", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTokenB", + "type": "uint256" + } + ], + "name": "addLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pair", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "getAmountsOut", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "address[]", + "name": "path", + "type": "address[]" + } + ], + "name": "swapExactTokensForTokens", + "outputs": [ + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1052": { + "entryPoint": null, + "id": 1052, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_fromMemory": { + "entryPoint": 273, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 167, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 224, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1355:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:16", + "type": "" + } + ], + "src": "696:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "939:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "985:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "987:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "987:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "960:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "969:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "956:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "981:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "952:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "952:32:16" + }, + "nodeType": "YulIf", + "src": "949:119:16" + }, + { + "nodeType": "YulBlock", + "src": "1078:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1093:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1107:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1122:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1168:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1179:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1164:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1164:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1188:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1132:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1132:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1122:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1216:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1231:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1235:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1261:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1307:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1318:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1303:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1303:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1327:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1271:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "1271:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1261:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "901:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "912:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "924:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "932:6:16", + "type": "" + } + ], + "src": "845:507:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_addLiquidity_1185": { + "entryPoint": 1933, + "id": 1185, + "parameterSlots": 6, + "returnSlots": 2 + }, + "@_swap_1350": { + "entryPoint": 2677, + "id": 1350, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@addLiquidity_1260": { + "entryPoint": 216, + "id": 1260, + "parameterSlots": 6, + "returnSlots": 3 + }, + "@getAmountOut_2294": { + "entryPoint": 3071, + "id": 2294, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getAmountsOut_1536": { + "entryPoint": 1503, + "id": 1536, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@quote_1460": { + "entryPoint": 3305, + "id": 1460, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sortTokens_2236": { + "entryPoint": 3484, + "id": 2236, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@swapExactTokensForTokens_1421": { + "entryPoint": 802, + "id": 1421, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3859, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 5088, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4160, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4875, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 5244, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 5337, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 5109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": { + "entryPoint": 3934, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4921, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 5265, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 5358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256_fromMemory": { + "entryPoint": 5719, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 4246, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 4421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5032, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4458, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5652, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6542, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6088, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 4406, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4075, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5310, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 5047, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5154, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 4552, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6577, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 5954, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 3766, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 4445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 4373, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 6414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 6301, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 5209, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3786, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3880, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4650, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "increment_t_uint256": { + "entryPoint": 5835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 5907, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 5495, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 6367, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5403, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4603, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 4155, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3776, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": { + "entryPoint": 5611, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": { + "entryPoint": 6155, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": { + "entryPoint": 6463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": { + "entryPoint": 6009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3836, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 5221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3890, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:20048:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:16", + "type": "" + } + ], + "src": "7:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:16", + "type": "" + } + ], + "src": "334:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:16", + "type": "" + } + ], + "src": "466:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:16" + }, + "nodeType": "YulIf", + "src": "621:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:16", + "type": "" + } + ], + "src": "568:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:16", + "type": "" + } + ], + "src": "696:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:16", + "type": "" + } + ], + "src": "841:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:16" + }, + "nodeType": "YulIf", + "src": "977:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:16", + "type": "" + } + ], + "src": "924:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:16", + "type": "" + } + ], + "src": "1052:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1348:906:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1395:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1397:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "1397:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1397:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1369:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1378:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1365:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1365:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1390:3:16", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1361:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1361:33:16" + }, + "nodeType": "YulIf", + "src": "1358:120:16" + }, + { + "nodeType": "YulBlock", + "src": "1488:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1503:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1517:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1507:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1532:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1567:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1578:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1563:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1563:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1587:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1542:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1542:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1532:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1615:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1630:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1644:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1634:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1660:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1695:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1706:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1691:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1691:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1715:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1670:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1670:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1660:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1743:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1758:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1772:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1762:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1788:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1823:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1834:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1819:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1819:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1843:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1798:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1798:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1788:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1871:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1886:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1900:2:16", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1890:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1916:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1951:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1962:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1947:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1947:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1971:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1926:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "1926:53:16" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1916:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1999:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2014:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2028:3:16", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2018:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2045:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2080:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2091:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2076:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2076:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2100:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2055:53:16" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2045:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2128:119:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2143:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2157:3:16", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2147:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2174:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2209:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2220:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2205:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2205:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2229:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2184:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2184:53:16" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2174:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1278:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1289:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1301:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1309:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1317:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1325:6:16", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1333:6:16", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1341:6:16", + "type": "" + } + ], + "src": "1197:1057:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2325:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2342:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2365:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2347:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2347:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2335:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2335:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2335:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2313:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2320:3:16", + "type": "" + } + ], + "src": "2260:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2538:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2548:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2560:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2571:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2556:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2556:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2548:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2628:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2641:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2637:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2637:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2584:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2584:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2584:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2709:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2722:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2733:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2718:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2718:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2665:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2665:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2665:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2791:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2804:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2815:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2800:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2800:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2747:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2747:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2747:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2494:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2506:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2514:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2522:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2533:4:16", + "type": "" + } + ], + "src": "2384:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2921:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2938:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2941:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2931:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2931:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2931:12:16" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "2832:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3044:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3054:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:12:16" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "2955:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3167:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3184:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3187:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3177:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3177:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3177:12:16" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "3078:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3308:478:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3357:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3359:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3359:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3359:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3336:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3344:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3332:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3332:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3351:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3328:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3328:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3321:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3321:35:16" + }, + "nodeType": "YulIf", + "src": "3318:122:16" + }, + { + "nodeType": "YulAssignment", + "src": "3449:30:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3472:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3459:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "3459:20:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3449:6:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3522:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "3524:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3524:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3524:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3494:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3502:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3491:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3491:30:16" + }, + "nodeType": "YulIf", + "src": "3488:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "3614:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3630:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3638:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3626:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3626:17:16" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3614:8:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3697:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "3699:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3699:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3699:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "3662:8:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3676:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3684:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3672:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3672:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3658:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3658:32:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3692:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3655:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3655:41:16" + }, + "nodeType": "YulIf", + "src": "3652:128:16" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3275:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3283:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "3291:8:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3301:6:16", + "type": "" + } + ], + "src": "3218:568:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:714:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3973:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3975:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3975:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3975:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3948:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3957:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3944:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3944:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3969:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3940:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3940:32:16" + }, + "nodeType": "YulIf", + "src": "3937:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4066:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4081:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4095:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4085:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4110:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4145:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4156:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4141:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4141:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4165:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4120:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4120:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4110:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4193:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4208:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4222:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4212:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4238:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4273:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4284:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4269:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4269:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4293:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4248:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4248:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4238:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4321:313:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4336:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4367:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4378:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4363:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4350:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "4350:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4340:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4429:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4431:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4431:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4431:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4401:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4409:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4398:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4398:30:16" + }, + "nodeType": "YulIf", + "src": "4395:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "4526:98:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4607:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4592:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4592:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4616:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "4544:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "4544:80:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4526:6:16" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4534:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3873:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3884:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3896:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3904:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3912:6:16", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3920:6:16", + "type": "" + } + ], + "src": "3792:849:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4721:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4732:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4748:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4742:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4742:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4732:6:16" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4704:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4714:6:16", + "type": "" + } + ], + "src": "4647:114:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4878:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4895:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4900:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4888:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4888:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4888:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "4916:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4935:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4940:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4931:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4931:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4916:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4850:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4855:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4866:11:16", + "type": "" + } + ], + "src": "4767:184:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5029:60:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5039:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5047:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5039:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5060:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5072:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5077:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5068:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5068:14:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5060:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5016:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5024:4:16", + "type": "" + } + ], + "src": "4957:132:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5150:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5167:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5190:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5172:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "5172:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5160:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5160:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5138:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5145:3:16", + "type": "" + } + ], + "src": "5095:108:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5289:99:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5333:6:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5341:3:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5299:33:16" + }, + "nodeType": "YulFunctionCall", + "src": "5299:46:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5299:46:16" + }, + { + "nodeType": "YulAssignment", + "src": "5354:28:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5372:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5377:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5368:14:16" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "5354:10:16" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5262:6:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5270:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "5278:10:16", + "type": "" + } + ], + "src": "5209:179:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5469:38:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5479:22:16", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5491:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5496:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5487:14:16" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "5479:4:16" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5456:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "5464:4:16", + "type": "" + } + ], + "src": "5394:113:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5667:608:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5677:68:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5739:5:16" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5691:47:16" + }, + "nodeType": "YulFunctionCall", + "src": "5691:54:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "5681:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5754:93:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5835:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5840:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5761:73:16" + }, + "nodeType": "YulFunctionCall", + "src": "5761:86:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5754:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5856:71:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5921:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5871:49:16" + }, + "nodeType": "YulFunctionCall", + "src": "5871:56:16" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "5860:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5936:21:16", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "5950:7:16" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "5940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6026:224:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6040:34:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6067:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6061:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "6061:13:16" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "6044:13:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6087:70:16", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "6138:13:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6153:3:16" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6094:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6094:63:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6087:3:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6170:70:16", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6233:6:16" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6180:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "6180:60:16" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "6170:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "5988:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5991:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5985:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5999:18:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6001:14:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6010:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6013:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6006:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6006:9:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "6001:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5970:14:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5972:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5981:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "5976:1:16", + "type": "" + } + ] + } + ] + }, + "src": "5966:284:16" + }, + { + "nodeType": "YulAssignment", + "src": "6259:10:16", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6266:3:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6259:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5646:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5653:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5662:3:16", + "type": "" + } + ], + "src": "5543:732:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6429:225:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6439:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6451:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6462:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6447:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6447:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6439:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6486:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6497:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6482:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6482:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6505:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6511:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6501:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6501:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6475:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "6531:116:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6633:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6642:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6539:93:16" + }, + "nodeType": "YulFunctionCall", + "src": "6539:108:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6531:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6401:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6413:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6424:4:16", + "type": "" + } + ], + "src": "6281:373:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6718:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6736:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6743:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6732:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6732:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6752:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6748:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6728:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6728:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6718:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6691:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6701:6:16", + "type": "" + } + ], + "src": "6660:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6796:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6813:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6816:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6806:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6806:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6806:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6910:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6913:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6903:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6903:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6903:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6937:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6927:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6927:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6927:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "6768:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6997:238:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7007:58:16", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7029:6:16" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7059:4:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "7037:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "7037:27:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7025:40:16" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "7011:10:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7176:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7178:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7178:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7178:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7119:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7131:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7116:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7116:34:16" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7155:10:16" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7167:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7152:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7152:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7113:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7113:62:16" + }, + "nodeType": "YulIf", + "src": "7110:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7214:2:16", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "7218:10:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7207:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7207:22:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7207:22:16" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6983:6:16", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "6991:4:16", + "type": "" + } + ], + "src": "6954:281:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7282:88:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7292:30:16", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "7302:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "7302:20:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7292:6:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7351:6:16" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7359:4:16" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "7331:19:16" + }, + "nodeType": "YulFunctionCall", + "src": "7331:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7331:33:16" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7266:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7275:6:16", + "type": "" + } + ], + "src": "7241:129:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7458:229:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7563:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "7565:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7565:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7565:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7535:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7543:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7532:30:16" + }, + "nodeType": "YulIf", + "src": "7529:56:16" + }, + { + "nodeType": "YulAssignment", + "src": "7595:25:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7607:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7615:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7603:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7603:17:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7595:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:23:16", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7669:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7675:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7665:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:15:16" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "7657:4:16" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7442:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "7453:4:16", + "type": "" + } + ], + "src": "7376:311:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7812:608:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7822:90:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7847:56:16" + }, + "nodeType": "YulFunctionCall", + "src": "7847:64:16" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "7831:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "7831:81:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7822:5:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7921:16:16", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7932:5:16" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "7925:3:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7954:5:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7947:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7947:21:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7947:21:16" + }, + { + "nodeType": "YulAssignment", + "src": "7977:23:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7988:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7995:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7984:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7984:16:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "7977:3:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8010:44:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8028:6:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8040:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8048:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8036:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8036:17:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8024:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8024:30:16" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "8014:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8082:103:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8096:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8096:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8096:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8069:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8077:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8066:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8066:15:16" + }, + "nodeType": "YulIf", + "src": "8063:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8270:144:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8285:21:16", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8303:3:16" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "8289:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8327:3:16" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "8353:10:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8365:3:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "8332:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "8332:37:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8320:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8320:50:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8320:50:16" + }, + { + "nodeType": "YulAssignment", + "src": "8383:21:16", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8394:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8399:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8390:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8390:14:16" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "8383:3:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8223:3:16" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "8228:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8220:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8220:15:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8236:25:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8238:21:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8249:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8254:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8245:14:16" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8238:3:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8198:21:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8200:17:16", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8211:6:16" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8204:3:16", + "type": "" + } + ] + } + ] + }, + "src": "8194:220:16" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7782:6:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7790:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7798:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7806:5:16", + "type": "" + } + ], + "src": "7710:710:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8520:293:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8569:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "8571:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8571:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8571:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8548:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8556:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8544:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8544:17:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8563:3:16" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8540:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8540:27:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8533:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8533:35:16" + }, + "nodeType": "YulIf", + "src": "8530:122:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8661:34:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8688:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8675:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "8675:20:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8665:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8704:103:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8780:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8788:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8776:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8776:17:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8795:6:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8803:3:16" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8713:62:16" + }, + "nodeType": "YulFunctionCall", + "src": "8713:94:16" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "8704:5:16" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8498:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8506:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "8514:5:16", + "type": "" + } + ], + "src": "8443:370:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8944:704:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8990:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8992:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "8992:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8992:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8965:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8974:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8961:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8957:32:16" + }, + "nodeType": "YulIf", + "src": "8954:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9083:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9098:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9112:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9102:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9127:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9162:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9173:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9158:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9158:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9182:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "9137:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9137:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9127:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9210:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9225:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9239:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9229:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9255:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9290:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9301:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9286:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9286:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9310:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9265:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "9265:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9255:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9338:303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9353:46:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9395:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9380:18:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9367:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "9367:32:16" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9357:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9446:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9448:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9448:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9448:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9418:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9426:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9415:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9415:30:16" + }, + "nodeType": "YulIf", + "src": "9412:117:16" + }, + { + "nodeType": "YulAssignment", + "src": "9543:88:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9603:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9599:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9599:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9623:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "9553:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "9553:78:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9543:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8898:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8909:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8921:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8929:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8937:6:16", + "type": "" + } + ], + "src": "8819:829:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9719:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9736:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9759:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9741:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9729:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9729:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9729:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9707:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9714:3:16", + "type": "" + } + ], + "src": "9654:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9904:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9914:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9926:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9937:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9922:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9922:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9914:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9994:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10007:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10018:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10003:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10003:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9950:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9950:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9950:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10075:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10088:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10099:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10084:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10031:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10031:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10031:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9868:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9880:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9888:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9899:4:16", + "type": "" + } + ], + "src": "9778:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10179:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10189:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10204:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10198:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "10198:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10189:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10247:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "10220:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "10220:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10220:33:16" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10157:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10165:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10173:5:16", + "type": "" + } + ], + "src": "10116:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10342:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10388:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10390:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "10390:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10390:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10363:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10372:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10359:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10359:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10384:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10355:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10355:32:16" + }, + "nodeType": "YulIf", + "src": "10352:119:16" + }, + { + "nodeType": "YulBlock", + "src": "10481:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10496:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10500:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10525:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10571:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10582:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10567:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10591:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "10535:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "10535:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10525:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10312:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10323:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10335:6:16", + "type": "" + } + ], + "src": "10265:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10776:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10786:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10798:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10809:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10794:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10794:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10786:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10866:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10879:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10890:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10875:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10875:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10822:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10822:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10822:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10947:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10960:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10971:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10956:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10956:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10903:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10903:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10903:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11053:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11038:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10985:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10985:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10732:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10744:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10752:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10760:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10771:4:16", + "type": "" + } + ], + "src": "10622:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11112:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11122:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11147:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11140:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11140:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11133:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11133:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "11122:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11094:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "11104:7:16", + "type": "" + } + ], + "src": "11070:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11206:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11260:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11269:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11272:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11262:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11262:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11262:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11229:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11251:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "11236:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "11236:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11226:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "11226:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "11219:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "11219:40:16" + }, + "nodeType": "YulIf", + "src": "11216:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11199:5:16", + "type": "" + } + ], + "src": "11166:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11348:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11358:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11373:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "11367:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "11367:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11358:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11413:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "11389:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "11389:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11389:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11326:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11334:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11342:5:16", + "type": "" + } + ], + "src": "11288:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11505:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11551:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11553:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "11553:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11553:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11526:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11535:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11522:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11522:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11547:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11518:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11518:32:16" + }, + "nodeType": "YulIf", + "src": "11515:119:16" + }, + { + "nodeType": "YulBlock", + "src": "11644:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11659:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11673:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11663:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11688:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11731:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11742:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11727:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11751:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11698:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "11698:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11688:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11475:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11486:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11498:6:16", + "type": "" + } + ], + "src": "11431:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11880:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11890:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11902:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11913:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11898:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11898:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11890:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11970:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11983:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11994:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "11979:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11926:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "11926:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "11926:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11852:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11864:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11875:4:16", + "type": "" + } + ], + "src": "11782:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12073:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12083:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12098:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12092:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "12092:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12083:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12141:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "12114:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "12114:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12114:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12051:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12059:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12067:5:16", + "type": "" + } + ], + "src": "12010:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12236:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12282:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12284:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12284:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12284:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12257:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12266:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12253:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12253:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12278:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12249:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12249:32:16" + }, + "nodeType": "YulIf", + "src": "12246:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12375:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12390:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12404:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12394:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12419:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12465:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12476:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12461:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12461:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12485:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "12429:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "12429:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12419:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12206:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12217:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12229:6:16", + "type": "" + } + ], + "src": "12159:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12544:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12561:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12564:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12554:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12554:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12554:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12658:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12661:4:16", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12651:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12651:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12651:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12682:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12685:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12675:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "12675:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12675:15:16" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "12516:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12768:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12814:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12816:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "12816:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "12816:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12789:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12798:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12785:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12785:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12810:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12781:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12781:32:16" + }, + "nodeType": "YulIf", + "src": "12778:119:16" + }, + { + "nodeType": "YulBlock", + "src": "12907:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12922:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12936:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12926:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12951:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12986:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12997:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12982:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "12982:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13006:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12961:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "12961:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12951:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12738:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12749:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12761:6:16", + "type": "" + } + ], + "src": "12702:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13065:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13082:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13085:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13075:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13075:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13075:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13179:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13182:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13172:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13172:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13172:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13203:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13206:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13196:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13196:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13196:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "13037:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13268:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13278:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13301:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13283:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13283:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13278:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13312:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13335:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13317:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "13317:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13312:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13346:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13358:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13361:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13354:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13354:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13346:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13388:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13390:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "13390:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13390:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "13379:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13385:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13376:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "13376:11:16" + }, + "nodeType": "YulIf", + "src": "13373:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13254:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13257:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "13263:4:16", + "type": "" + } + ], + "src": "13223:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13519:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13536:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13541:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13529:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13529:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "13557:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13576:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13581:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13572:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13572:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13557:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13491:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13496:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13507:11:16", + "type": "" + } + ], + "src": "13423:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:32:16", + "type": "", + "value": "UniswapV2Library: INVALID_PATH" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "13715:56:16" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:56:16" + } + ] + }, + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:16", + "type": "" + } + ], + "src": "13598:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13930:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13940:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14006:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14011:2:16", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13947:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "13947:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13940:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14112:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222", + "nodeType": "YulIdentifier", + "src": "14023:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "14023:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14023:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "14125:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14136:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14141:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14132:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14125:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13918:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13926:3:16", + "type": "" + } + ], + "src": "13784:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14327:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14337:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14345:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14337:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14384:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14395:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14380:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14380:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14403:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14409:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14399:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14399:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14373:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "14373:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "14429:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14563:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14437:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "14437:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14429:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14307:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14322:4:16", + "type": "" + } + ], + "src": "14156:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14675:413:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "14721:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "14723:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "14723:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "14723:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14696:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14705:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14692:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14692:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14717:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "14688:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14688:32:16" + }, + "nodeType": "YulIf", + "src": "14685:119:16" + }, + { + "nodeType": "YulBlock", + "src": "14814:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14829:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14843:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14833:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14858:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14904:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14915:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14900:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "14900:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14924:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "14868:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "14868:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14858:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "14952:129:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14967:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14981:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "14971:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14997:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15043:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "15054:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15039:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15039:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "15063:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "15007:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "15007:64:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14997:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14637:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "14648:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14660:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14668:6:16", + "type": "" + } + ], + "src": "14581:507:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15138:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15148:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15171:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15153:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15153:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15148:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15182:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15205:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15187:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15187:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15182:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15216:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15227:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "15230:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15223:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15223:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15216:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15256:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15258:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15258:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15258:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "15248:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "15251:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15245:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15245:10:16" + }, + "nodeType": "YulIf", + "src": "15242:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "15125:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "15128:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "15134:3:16", + "type": "" + } + ], + "src": "15094:191:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15334:190:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15344:33:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15371:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15353:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "15353:24:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15344:5:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15467:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "15469:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "15469:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15469:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15392:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15399:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15389:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "15389:77:16" + }, + "nodeType": "YulIf", + "src": "15386:103:16" + }, + { + "nodeType": "YulAssignment", + "src": "15498:20:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15509:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15516:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15505:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15505:13:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "15498:3:16" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15320:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "15330:3:16", + "type": "" + } + ], + "src": "15291:233:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15558:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15575:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15578:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15568:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15568:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15568:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15672:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15675:4:16", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15665:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15665:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15665:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15696:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15699:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15689:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "15689:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15689:15:16" + } + ] + }, + "name": "panic_error_0x01", + "nodeType": "YulFunctionDefinition", + "src": "15530:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15870:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15880:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15892:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15903:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15888:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15880:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15960:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15973:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15984:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15969:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "15969:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15916:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15916:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15916:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "16041:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16054:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16065:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16050:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16050:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15997:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "15997:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "15997:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16123:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16136:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16147:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16132:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16132:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "16079:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "16079:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16079:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15826:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15838:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15846:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15854:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15865:4:16", + "type": "" + } + ], + "src": "15716:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16270:124:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16292:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16300:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16288:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16288:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16304:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_I" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16281:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16281:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16281:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16360:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16368:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16356:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16356:15:16" + }, + { + "hexValue": "4e5055545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16373:13:16", + "type": "", + "value": "NPUT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16349:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16349:38:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16349:38:16" + } + ] + }, + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16262:6:16", + "type": "" + } + ], + "src": "16164:230:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16546:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16556:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16622:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16627:2:16", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16563:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "16563:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16556:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16728:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae", + "nodeType": "YulIdentifier", + "src": "16639:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "16639:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16639:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "16741:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16752:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16757:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16748:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16748:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16741:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16534:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16542:3:16", + "type": "" + } + ], + "src": "16400:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16943:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16953:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16965:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16976:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16961:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16961:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16953:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17000:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17011:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16996:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "16996:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17019:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17025:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17015:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17015:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16989:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "16989:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "16989:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "17045:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17179:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17053:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "17053:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17045:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16923:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16938:4:16", + "type": "" + } + ], + "src": "16772:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:121:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:16" + }, + { + "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:16", + "type": "", + "value": "UniswapV2Library: INSUFFICIENT_L" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:16" + }, + { + "hexValue": "4951554944495459", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:10:16", + "type": "", + "value": "IQUIDITY" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "17382:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:35:16" + } + ] + }, + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:16", + "type": "" + } + ], + "src": "17197:227:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17576:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17586:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17652:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17657:2:16", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17593:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "17593:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17586:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17758:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8", + "nodeType": "YulIdentifier", + "src": "17669:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "17669:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "17669:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "17771:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17782:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17787:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17778:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17778:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17771:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17564:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17572:3:16", + "type": "" + } + ], + "src": "17430:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17973:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17983:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17995:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18006:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17991:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "17991:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18030:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18041:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18026:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18026:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18049:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18055:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18045:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18045:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18019:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18019:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18019:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "18075:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18209:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18083:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "18083:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18075:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17953:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17968:4:16", + "type": "" + } + ], + "src": "17802:419:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18275:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18285:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18308:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18290:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18290:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18285:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18319:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18342:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18324:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18324:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18319:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "18353:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18376:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18379:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "18372:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18372:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "18357:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18390:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "18419:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18401:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18401:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18390:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18608:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18610:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18610:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18610:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18541:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18534:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18534:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18564:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "18571:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18580:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18567:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18567:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18561:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18561:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "18514:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "18514:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18494:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18494:113:16" + }, + "nodeType": "YulIf", + "src": "18491:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18258:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18261:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "18267:7:16", + "type": "" + } + ], + "src": "18227:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18671:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18688:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18691:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18681:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18681:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18681:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18785:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18788:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18778:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18778:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18778:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18809:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18812:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "18802:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18802:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18802:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "18643:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18871:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18881:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18904:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18886:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18886:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18881:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18915:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18938:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18920:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "18920:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18915:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18962:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "18964:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "18964:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "18964:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18959:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "18952:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "18952:9:16" + }, + "nodeType": "YulIf", + "src": "18949:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "18994:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19003:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19006:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "18999:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "18999:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "18994:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18860:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18863:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "18869:1:16", + "type": "" + } + ], + "src": "18829:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19126:122:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19148:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19156:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19144:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19144:14:16" + }, + { + "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19160:34:16", + "type": "", + "value": "UniswapV2DefiLibrary: INSUFFICIE" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19137:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19137:58:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19137:58:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19216:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19224:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19212:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19212:15:16" + }, + { + "hexValue": "4e545f414d4f554e54", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19229:11:16", + "type": "", + "value": "NT_AMOUNT" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19205:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19205:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19205:36:16" + } + ] + }, + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19118:6:16", + "type": "" + } + ], + "src": "19020:228:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19400:220:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19410:74:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19476:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19481:2:16", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19417:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "19417:67:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19410:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19582:3:16" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44", + "nodeType": "YulIdentifier", + "src": "19493:88:16" + }, + "nodeType": "YulFunctionCall", + "src": "19493:93:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19493:93:16" + }, + { + "nodeType": "YulAssignment", + "src": "19595:19:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19606:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19611:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19602:12:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19595:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19388:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19396:3:16", + "type": "" + } + ], + "src": "19254:366:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19797:248:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19807:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19819:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19830:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19815:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19815:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19807:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19854:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19865:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19850:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19850:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19873:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19879:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19869:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "19869:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19843:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "19843:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "19843:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "19899:139:16", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20033:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19907:124:16" + }, + "nodeType": "YulFunctionCall", + "src": "19907:131:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19899:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19777:9:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19792:4:16", + "type": "" + } + ], + "src": "19626:419:16" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1034": [ + { + "length": 32, + "start": 247 + }, + { + "length": 32, + "start": 808 + }, + { + "length": 32, + "start": 1940 + }, + { + "length": 32, + "start": 2152 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ", + "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o" + }, + "methodIdentifiers": { + "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f", + "getAmountsOut(address,uint256,address[])": "bb7b9c76", + "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "115:540:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}" + } + }, + "contracts/core/Pool.sol": { + "Pool": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__InsufficientLiquidity", + "type": "error" + }, + { + "inputs": [], + "name": "PoolFactory__NotOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1659": { + "entryPoint": null, + "id": 1659, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 701, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 516, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 662, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 536, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 856, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 327, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 826, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 526, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 794, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 280, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 233, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 576, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 417, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 634, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 430, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 586, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 629, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MINIMUM_LIQUIDITY_1640": { + "entryPoint": 3762, + "id": 1640, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_542": { + "entryPoint": 4500, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 5335, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_burn_524": { + "entryPoint": 5205, + "id": 524, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 5032, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 4492, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 4518, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 4666, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_1699": { + "entryPoint": 5187, + "id": 1699, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 5806, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 3768, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 991, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 2461, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 1083, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTokenReserves_2077": { + "entryPoint": 3745, + "id": 2077, + "parameterSlots": 0, + "returnSlots": 2 + }, + "@init_1683": { + "entryPoint": 3903, + "id": 1683, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@liquidateLpTokens_1958": { + "entryPoint": 2533, + "id": 1958, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@min_1558": { + "entryPoint": 5162, + "id": 1558, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@mint_1816": { + "entryPoint": 1092, + "id": 1816, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_197": { + "entryPoint": 845, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sqrt_1612": { + "entryPoint": 4910, + "id": 1612, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@swap_2065": { + "entryPoint": 1681, + "id": 2065, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@symbol_206": { + "entryPoint": 3564, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@sync_2102": { + "entryPoint": 4170, + "id": 2102, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@totalSupply_224": { + "entryPoint": 1026, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 1036, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 3710, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 6611, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 7746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 6665, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 7355, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 6984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 7153, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 6846, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 6686, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 7767, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 7376, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256t_address": { + "entryPoint": 7029, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 7313, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 6762, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6442, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 6804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 6942, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 7328, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 7682, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7812, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 6777, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6499, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 6819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 7112, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 6957, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 6355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 6366, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 7867, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 7633, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 7520, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 7468, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 6570, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 6750, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 6538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6632, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 6929, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 6383, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 7264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 7421, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 7586, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 7217, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 6533, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 6425, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 6588, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 7723, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 6642, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10776:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5288:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5334:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5336:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5336:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5336:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5309:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5318:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5305:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5305:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5330:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5301:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5301:32:16" + }, + "nodeType": "YulIf", + "src": "5298:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5427:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5442:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5456:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5446:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5471:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5506:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5517:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5502:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5502:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5526:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5481:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5481:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5471:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5554:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5569:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5583:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5573:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5599:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5634:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5645:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5630:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5654:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5609:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5609:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5599:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5682:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5697:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5711:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5701:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5727:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5762:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5773:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5758:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5758:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5782:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5737:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5737:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "5727:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5242:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5253:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5265:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5273:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5281:6:16", + "type": "" + } + ], + "src": "5188:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5939:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5949:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5961:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5972:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5957:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5957:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5949:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6029:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6042:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6053:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6038:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6038:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5985:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "5985:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5985:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6110:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6123:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6134:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6119:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6119:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6066:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6066:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6066:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5903:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5915:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5923:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5934:4:16", + "type": "" + } + ], + "src": "5813:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6234:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6280:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6282:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "6282:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6282:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6255:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6264:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6251:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6251:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6276:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6247:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6247:32:16" + }, + "nodeType": "YulIf", + "src": "6244:119:16" + }, + { + "nodeType": "YulBlock", + "src": "6373:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6388:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6402:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6392:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6417:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6452:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6463:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6448:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6448:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6472:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6427:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6427:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6417:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6500:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6515:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6529:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6519:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6545:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6580:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6591:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6576:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6576:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6600:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6555:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "6555:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6545:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6196:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6207:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6219:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6227:6:16", + "type": "" + } + ], + "src": "6151:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6659:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6676:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6679:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6669:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6669:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6669:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6776:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6766:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6766:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6766:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6797:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6790:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6790:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6790:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6631:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6868:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6878:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6892:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6898:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6888:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6888:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6878:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6909:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6939:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6945:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6935:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6935:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6913:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6986:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7000:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7014:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7022:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7010:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7010:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7000:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6966:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6959:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6959:26:16" + }, + "nodeType": "YulIf", + "src": "6956:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7089:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "7103:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7103:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7103:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "7053:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7076:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7084:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7073:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7073:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7050:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7050:38:16" + }, + "nodeType": "YulIf", + "src": "7047:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6852:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6861:6:16", + "type": "" + } + ], + "src": "6817:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7208:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7225:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7248:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7230:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7230:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7218:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7218:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7196:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7203:3:16", + "type": "" + } + ], + "src": "7143:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7365:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7375:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7387:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7398:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7383:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7383:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7375:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7455:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7468:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7479:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7464:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7464:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7411:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7411:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7411:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7337:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7349:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7360:4:16", + "type": "" + } + ], + "src": "7267:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7558:80:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7568:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7583:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7577:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "7577:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7568:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7626:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "7599:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "7599:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7599:33:16" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7536:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7544:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7552:5:16", + "type": "" + } + ], + "src": "7495:143:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7721:274:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7767:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7769:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "7769:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7769:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7742:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7751:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7738:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7738:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7763:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7734:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7734:32:16" + }, + "nodeType": "YulIf", + "src": "7731:119:16" + }, + { + "nodeType": "YulBlock", + "src": "7860:128:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7875:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7889:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7879:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7904:74:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7950:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7961:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7946:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7946:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7970:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "7914:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "7914:64:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7904:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7691:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7702:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7714:6:16", + "type": "" + } + ], + "src": "7644:351:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8029:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8046:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8049:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8039:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8039:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8039:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8143:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8146:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8136:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8136:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8136:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8167:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8170:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8160:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8160:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8160:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "8001:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8232:149:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8242:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8265:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8247:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8247:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8242:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8276:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8299:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8281:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8281:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8276:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8310:17:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8322:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8325:1:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8318:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8318:9:16" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8310:4:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8352:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8354:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8354:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8354:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8343:4:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8349:1:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8340:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8340:11:16" + }, + "nodeType": "YulIf", + "src": "8337:37:16" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8218:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8221:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "8227:4:16", + "type": "" + } + ], + "src": "8187:194:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8435:362:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8445:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8468:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8450:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8450:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8445:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8479:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8502:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8484:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8484:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8479:1:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8513:28:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8536:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8539:1:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8532:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8532:9:16" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "8517:11:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8550:41:16", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "8579:11:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8561:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "8561:30:16" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8550:7:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8768:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "8770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8701:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8694:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8694:9:16" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8724:1:16" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8731:7:16" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8740:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8727:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "8727:15:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8721:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8721:22:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8674:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "8674:83:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8654:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8654:113:16" + }, + "nodeType": "YulIf", + "src": "8651:139:16" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8418:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8421:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "8427:7:16", + "type": "" + } + ], + "src": "8387:410:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8831:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8848:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8851:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8841:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8841:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8841:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8945:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8948:4:16", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8938:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8938:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8938:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8969:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8972:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8962:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "8962:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "8962:15:16" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "8803:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9031:143:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9041:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9064:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9046:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9046:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9041:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9075:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9098:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9080:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "9080:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9075:1:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9122:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "9124:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "9124:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9124:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9119:1:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9112:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9112:9:16" + }, + "nodeType": "YulIf", + "src": "9109:35:16" + }, + { + "nodeType": "YulAssignment", + "src": "9154:14:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9163:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9166:1:16" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9159:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9159:9:16" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "9154:1:16" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9020:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9023:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "9029:1:16", + "type": "" + } + ], + "src": "8989:185:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9306:206:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9316:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9328:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9339:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9324:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9324:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9316:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9396:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9409:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9420:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9405:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9405:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9352:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9352:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9352:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9477:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9490:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9501:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9486:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "9433:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "9433:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9433:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9270:9:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9282:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9290:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9301:4:16", + "type": "" + } + ], + "src": "9180:332:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9558:76:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9612:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9621:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9624:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9614:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9614:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9614:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9581:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9603:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "9588:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "9588:21:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9578:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "9578:32:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9571:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "9571:40:16" + }, + "nodeType": "YulIf", + "src": "9568:60:16" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9551:5:16", + "type": "" + } + ], + "src": "9518:116:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9700:77:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9710:22:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9725:6:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9719:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "9719:13:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9710:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9765:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "9741:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "9741:30:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9741:30:16" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9678:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9686:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9694:5:16", + "type": "" + } + ], + "src": "9640:137:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9857:271:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9903:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9905:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "9905:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "9905:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9878:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9887:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9874:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9874:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9899:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9870:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "9870:32:16" + }, + "nodeType": "YulIf", + "src": "9867:119:16" + }, + { + "nodeType": "YulBlock", + "src": "9996:125:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10011:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10025:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10015:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10040:71:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10083:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10094:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10079:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10079:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10103:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "10050:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "10050:61:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10040:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9827:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9838:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9850:6:16", + "type": "" + } + ], + "src": "9783:345:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10288:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10298:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10310:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10321:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10306:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10306:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10298:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10378:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10391:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10402:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10387:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10387:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10334:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10334:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10334:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10459:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10472:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10483:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10468:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10415:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10415:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10415:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10541:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10554:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10565:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10550:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10550:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10497:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "10497:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10497:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10244:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10256:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10264:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10272:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10283:4:16", + "type": "" + } + ], + "src": "10134:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10626:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10636:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10659:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10641:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10641:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10636:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10670:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10693:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "10675:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "10675:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10670:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10704:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10715:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10718:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10711:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "10711:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10704:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10744:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "10746:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "10746:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "10746:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10736:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "10739:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10733:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "10733:10:16" + }, + "nodeType": "YulIf", + "src": "10730:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "10613:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "10616:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "10622:3:16", + "type": "" + } + ], + "src": "10582:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "1631": [ + { + "length": 32, + "start": 3928 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ", + "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o" + }, + "methodIdentifiers": { + "MINIMUM_LIQUIDITY()": "ba9a7a56", + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "name()": "06fdde03", + "swap(uint256,uint256,address)": "6d9a640a", + "symbol()": "95d89b41", + "sync()": "fff6cae9", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IFactory.sol": { + "IFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "address", + "name": "poolPair", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenB", + "type": "address" + } + ], + "name": "getTokenPairs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createPool(address,address)": "e3433615", + "getTokenPairs(address,address)": "4a70f02e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IPool.sol": { + "IPool": { + "abi": [ + { + "inputs": [], + "name": "getTokenReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenA", + "type": "address" + }, + { + "internalType": "address", + "name": "_tokenB", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "liquidateLpTokens", + "outputs": [ + { + "internalType": "uint256", + "name": "amountA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountB", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount0Out", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1Out", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getTokenReserves()": "b9cf5005", + "init(address,address)": "f09a4016", + "liquidateLpTokens(address)": "74a0f94b", + "mint(address)": "6a627842", + "swap(uint256,uint256,address)": "6d9a640a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}" + } + }, + "contracts/core/interfaces/IWedu.sol": { + "IWEDU": { + "abi": [ + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "deposit()": "d0e30db0", + "transfer(address,uint256)": "a9059cbb", + "withdraw(uint256)": "2e1a7d4d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}" + } + }, + "contracts/core/libraries/Library.sol": { + "DefiLibrary": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ", + "sourceMap": "137:1380:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/Apple.Token.sol": { + "AppleToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2308": { + "entryPoint": null, + "id": 2308, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f38806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461015d57806395d89b411461018d578063a0712d68146101ab578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b5f565b60405180910390f35b6100db60048036038101906100d69190610c1a565b6102b9565b6040516100e89190610c75565b60405180910390f35b6100f96102dc565b6040516101069190610c9f565b60405180910390f35b61012960048036038101906101249190610cba565b6102e6565b6040516101369190610c75565b60405180910390f35b610147610315565b6040516101549190610d29565b60405180910390f35b61017760048036038101906101729190610d44565b61031e565b6040516101849190610c9f565b60405180910390f35b610195610366565b6040516101a29190610b5f565b60405180910390f35b6101c560048036038101906101c09190610d71565b6103f8565b005b6101e160048036038101906101dc9190610c1a565b610405565b6040516101ee9190610c75565b60405180910390f35b610211600480360381019061020c9190610d9e565b610428565b60405161021e9190610c9f565b60405180910390f35b60606003805461023690610e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610e0d565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104af565b90506102d18185856104b7565b600191505092915050565b6000600254905090565b6000806102f16104af565b90506102fe8582856104c9565b61030985858561055d565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461037590610e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546103a190610e0d565b80156103ee5780601f106103c3576101008083540402835291602001916103ee565b820191906000526020600020905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b6104023382610651565b50565b6000806104106104af565b905061041d81858561055d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c483838360016106d3565b505050565b60006104d58484610428565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105575781811015610547578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053e93929190610e4d565b60405180910390fd5b610556848484840360006106d3565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105cf5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c69190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106415760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106389190610e84565b60405180910390fd5b61064c8383836108aa565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c35760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106ba9190610e84565b60405180910390fd5b6106cf600083836108aa565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107455760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073c9190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b75760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107ae9190610e84565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089b9190610c9f565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fc5780600260008282546108f09190610ece565b925050819055506109cf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610988578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161097f93929190610e4d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a185780600260008282540392505081905550610a65565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac29190610c9f565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b09578082015181840152602081019050610aee565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3182610acf565b610b3b8185610ada565b9350610b4b818560208601610aeb565b610b5481610b15565b840191505092915050565b60006020820190508181036000830152610b798184610b26565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb182610b86565b9050919050565b610bc181610ba6565b8114610bcc57600080fd5b50565b600081359050610bde81610bb8565b92915050565b6000819050919050565b610bf781610be4565b8114610c0257600080fd5b50565b600081359050610c1481610bee565b92915050565b60008060408385031215610c3157610c30610b81565b5b6000610c3f85828601610bcf565b9250506020610c5085828601610c05565b9150509250929050565b60008115159050919050565b610c6f81610c5a565b82525050565b6000602082019050610c8a6000830184610c66565b92915050565b610c9981610be4565b82525050565b6000602082019050610cb46000830184610c90565b92915050565b600080600060608486031215610cd357610cd2610b81565b5b6000610ce186828701610bcf565b9350506020610cf286828701610bcf565b9250506040610d0386828701610c05565b9150509250925092565b600060ff82169050919050565b610d2381610d0d565b82525050565b6000602082019050610d3e6000830184610d1a565b92915050565b600060208284031215610d5a57610d59610b81565b5b6000610d6884828501610bcf565b91505092915050565b600060208284031215610d8757610d86610b81565b5b6000610d9584828501610c05565b91505092915050565b60008060408385031215610db557610db4610b81565b5b6000610dc385828601610bcf565b9250506020610dd485828601610bcf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e2557607f821691505b602082108103610e3857610e37610dde565b5b50919050565b610e4781610ba6565b82525050565b6000606082019050610e626000830186610e3e565b610e6f6020830185610c90565b610e7c6040830184610c90565b949350505050565b6000602082019050610e996000830184610e3e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ed982610be4565b9150610ee483610be4565b9250828201905080821115610efc57610efb610e9f565b5b9291505056fea26469706673582212202f51cc349722a0bdd0d84405be83c24fc2c62b495f60df6fe6f9f658883c7d2b64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF38 DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x195 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C0 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x428 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4C9 JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x375 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3A1 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3EE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3EE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x402 CALLER DUP3 PUSH2 0x651 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x410 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x41D DUP2 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D5 DUP5 DUP5 PUSH2 0x428 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x557 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x547 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x556 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D3 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5CF JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x641 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64C DUP4 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C3 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BA SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CF PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x745 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73C SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AE SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A4 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89B SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FC JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F0 SWAP2 SWAP1 PUSH2 0xECE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x988 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA18 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA65 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB09 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB31 DUP3 PUSH2 0xACF JUMP JUMPDEST PUSH2 0xB3B DUP2 DUP6 PUSH2 0xADA JUMP JUMPDEST SWAP4 POP PUSH2 0xB4B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEB JUMP JUMPDEST PUSH2 0xB54 DUP2 PUSH2 0xB15 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB79 DUP2 DUP5 PUSH2 0xB26 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB1 DUP3 PUSH2 0xB86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC1 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDE DUP2 PUSH2 0xBB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF7 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC14 DUP2 PUSH2 0xBEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC31 JUMPI PUSH2 0xC30 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC3F DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC50 DUP6 DUP3 DUP7 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC6F DUP2 PUSH2 0xC5A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC66 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC99 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF2 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD03 DUP7 DUP3 DUP8 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD23 DUP2 PUSH2 0xD0D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5A JUMPI PUSH2 0xD59 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD68 DUP5 DUP3 DUP6 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD87 JUMPI PUSH2 0xD86 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD95 DUP5 DUP3 DUP6 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDC3 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDD4 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE25 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE38 JUMPI PUSH2 0xE37 PUSH2 0xDDE JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE47 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE62 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE3E JUMP JUMPDEST PUSH2 0xE6F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0xE7C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xED9 DUP3 PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xEE4 DUP4 PUSH2 0xBE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xEFC JUMPI PUSH2 0xEFB PUSH2 0xE9F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F MLOAD 0xCC CALLVALUE SWAP8 0x22 LOG0 0xBD 0xD0 0xD8 PREVRANDAO SDIV 0xBE DUP4 0xC2 0x4F 0xC2 0xC6 0x2B 0x49 PUSH0 PUSH1 0xDF PUSH16 0xE6F9F658883C7D2B64736F6C63430008 EQ STOP CALLER ", + "sourceMap": "120:199:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:199:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:199:13:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1207, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1747, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1617, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1199, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1225, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1373, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2218, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1064, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 798, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2320": { + "entryPoint": 1016, + "id": 2320, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 870, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1029, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3023, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3077, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3486, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3258, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3098, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 3441, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3646, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3174, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2854, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3216, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3354, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3716, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3661, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3189, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2911, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3231, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3369, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2767, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2778, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3790, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2982, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3162, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2950, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3044, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3341, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2795, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3597, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3743, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3550, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2945, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2837, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3000, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3054, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7695:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5254:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5300:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5302:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5302:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5302:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5275:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5284:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5271:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5271:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5296:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5267:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5267:32:16" + }, + "nodeType": "YulIf", + "src": "5264:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5393:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5408:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5422:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5412:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5437:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5472:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5483:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5468:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5492:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5447:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5447:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5437:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5224:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5235:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5247:6:16", + "type": "" + } + ], + "src": "5188:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5606:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5652:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5654:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5654:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5654:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5627:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5636:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5623:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5623:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5648:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5619:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5619:32:16" + }, + "nodeType": "YulIf", + "src": "5616:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5745:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5760:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5774:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5764:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5789:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5824:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5835:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5820:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5820:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5844:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5799:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5799:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5789:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5872:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5887:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5901:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5891:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5917:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5952:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5963:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5948:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5948:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5972:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5927:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5927:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5917:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5568:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5579:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5591:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5599:6:16", + "type": "" + } + ], + "src": "5523:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6031:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6048:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6051:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6041:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6041:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6041:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6145:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6148:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6138:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6138:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6138:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6169:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6172:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6162:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6162:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6162:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6003:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6240:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6250:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6264:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6270:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6260:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6260:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6250:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6281:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6311:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6317:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6307:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6307:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6285:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6358:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6372:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6386:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6394:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6382:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6382:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6372:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6338:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6331:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6331:26:16" + }, + "nodeType": "YulIf", + "src": "6328:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6461:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6475:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6425:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6448:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6456:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6445:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6445:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6422:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6422:38:16" + }, + "nodeType": "YulIf", + "src": "6419:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6224:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6233:6:16", + "type": "" + } + ], + "src": "6189:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6580:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6597:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6620:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6602:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6602:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6590:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6590:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6590:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6568:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6575:3:16", + "type": "" + } + ], + "src": "6515:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6793:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6803:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6815:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6826:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6811:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6811:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6803:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6883:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6896:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6907:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6892:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6839:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6839:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6839:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6964:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6977:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6988:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6973:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6973:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6920:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6920:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6920:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7046:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7059:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7070:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7055:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7055:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7002:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7002:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7002:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6749:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6761:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6769:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6777:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6788:4:16", + "type": "" + } + ], + "src": "6639:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7185:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7195:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7207:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7218:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7203:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7203:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7195:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7275:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7288:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7299:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7284:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7231:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7231:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7231:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7157:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7169:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7180:4:16", + "type": "" + } + ], + "src": "7087:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7343:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7360:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7363:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7353:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7353:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7353:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7457:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7460:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7450:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7450:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7450:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7481:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7484:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7474:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7474:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7474:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "7315:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7545:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7555:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7578:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7560:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7560:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7555:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7589:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7612:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7594:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7594:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7589:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7623:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7634:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7637:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7630:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7623:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7663:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7665:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7665:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7655:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7658:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7652:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7652:10:16" + }, + "nodeType": "YulIf", + "src": "7649:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7532:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7535:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7541:3:16", + "type": "" + } + ], + "src": "7501:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461015d57806395d89b411461018d578063a0712d68146101ab578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b5f565b60405180910390f35b6100db60048036038101906100d69190610c1a565b6102b9565b6040516100e89190610c75565b60405180910390f35b6100f96102dc565b6040516101069190610c9f565b60405180910390f35b61012960048036038101906101249190610cba565b6102e6565b6040516101369190610c75565b60405180910390f35b610147610315565b6040516101549190610d29565b60405180910390f35b61017760048036038101906101729190610d44565b61031e565b6040516101849190610c9f565b60405180910390f35b610195610366565b6040516101a29190610b5f565b60405180910390f35b6101c560048036038101906101c09190610d71565b6103f8565b005b6101e160048036038101906101dc9190610c1a565b610405565b6040516101ee9190610c75565b60405180910390f35b610211600480360381019061020c9190610d9e565b610428565b60405161021e9190610c9f565b60405180910390f35b60606003805461023690610e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610e0d565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104af565b90506102d18185856104b7565b600191505092915050565b6000600254905090565b6000806102f16104af565b90506102fe8582856104c9565b61030985858561055d565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461037590610e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546103a190610e0d565b80156103ee5780601f106103c3576101008083540402835291602001916103ee565b820191906000526020600020905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b6104023382610651565b50565b6000806104106104af565b905061041d81858561055d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c483838360016106d3565b505050565b60006104d58484610428565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105575781811015610547578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053e93929190610e4d565b60405180910390fd5b610556848484840360006106d3565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105cf5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c69190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106415760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106389190610e84565b60405180910390fd5b61064c8383836108aa565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c35760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106ba9190610e84565b60405180910390fd5b6106cf600083836108aa565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107455760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073c9190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b75760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107ae9190610e84565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089b9190610c9f565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fc5780600260008282546108f09190610ece565b925050819055506109cf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610988578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161097f93929190610e4d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a185780600260008282540392505081905550610a65565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac29190610c9f565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b09578082015181840152602081019050610aee565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3182610acf565b610b3b8185610ada565b9350610b4b818560208601610aeb565b610b5481610b15565b840191505092915050565b60006020820190508181036000830152610b798184610b26565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb182610b86565b9050919050565b610bc181610ba6565b8114610bcc57600080fd5b50565b600081359050610bde81610bb8565b92915050565b6000819050919050565b610bf781610be4565b8114610c0257600080fd5b50565b600081359050610c1481610bee565b92915050565b60008060408385031215610c3157610c30610b81565b5b6000610c3f85828601610bcf565b9250506020610c5085828601610c05565b9150509250929050565b60008115159050919050565b610c6f81610c5a565b82525050565b6000602082019050610c8a6000830184610c66565b92915050565b610c9981610be4565b82525050565b6000602082019050610cb46000830184610c90565b92915050565b600080600060608486031215610cd357610cd2610b81565b5b6000610ce186828701610bcf565b9350506020610cf286828701610bcf565b9250506040610d0386828701610c05565b9150509250925092565b600060ff82169050919050565b610d2381610d0d565b82525050565b6000602082019050610d3e6000830184610d1a565b92915050565b600060208284031215610d5a57610d59610b81565b5b6000610d6884828501610bcf565b91505092915050565b600060208284031215610d8757610d86610b81565b5b6000610d9584828501610c05565b91505092915050565b60008060408385031215610db557610db4610b81565b5b6000610dc385828601610bcf565b9250506020610dd485828601610bcf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e2557607f821691505b602082108103610e3857610e37610dde565b5b50919050565b610e4781610ba6565b82525050565b6000606082019050610e626000830186610e3e565b610e6f6020830185610c90565b610e7c6040830184610c90565b949350505050565b6000602082019050610e996000830184610e3e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ed982610be4565b9150610ee483610be4565b9250828201905080821115610efc57610efb610e9f565b5b9291505056fea26469706673582212202f51cc349722a0bdd0d84405be83c24fc2c62b495f60df6fe6f9f658883c7d2b64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x195 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C0 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x428 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4C9 JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x375 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3A1 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3EE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3EE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x402 CALLER DUP3 PUSH2 0x651 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x410 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x41D DUP2 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D5 DUP5 DUP5 PUSH2 0x428 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x557 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x547 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x556 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D3 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5CF JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x641 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64C DUP4 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C3 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BA SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CF PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x745 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73C SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AE SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A4 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89B SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FC JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F0 SWAP2 SWAP1 PUSH2 0xECE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x988 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA18 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA65 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB09 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB31 DUP3 PUSH2 0xACF JUMP JUMPDEST PUSH2 0xB3B DUP2 DUP6 PUSH2 0xADA JUMP JUMPDEST SWAP4 POP PUSH2 0xB4B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEB JUMP JUMPDEST PUSH2 0xB54 DUP2 PUSH2 0xB15 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB79 DUP2 DUP5 PUSH2 0xB26 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB1 DUP3 PUSH2 0xB86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC1 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDE DUP2 PUSH2 0xBB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF7 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC14 DUP2 PUSH2 0xBEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC31 JUMPI PUSH2 0xC30 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC3F DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC50 DUP6 DUP3 DUP7 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC6F DUP2 PUSH2 0xC5A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC66 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC99 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF2 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD03 DUP7 DUP3 DUP8 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD23 DUP2 PUSH2 0xD0D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5A JUMPI PUSH2 0xD59 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD68 DUP5 DUP3 DUP6 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD87 JUMPI PUSH2 0xD86 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD95 DUP5 DUP3 DUP6 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDC3 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDD4 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE25 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE38 JUMPI PUSH2 0xE37 PUSH2 0xDDE JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE47 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE62 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE3E JUMP JUMPDEST PUSH2 0xE6F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0xE7C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xED9 DUP3 PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xEE4 DUP4 PUSH2 0xBE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xEFC JUMPI PUSH2 0xEFB PUSH2 0xE9F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F MLOAD 0xCC CALLVALUE SWAP8 0x22 LOG0 0xBD 0xD0 0xD8 PREVRANDAO SDIV 0xBE DUP4 0xC2 0x4F 0xC2 0xC6 0x2B 0x49 PUSH0 PUSH1 0xDF PUSH16 0xE6F9F658883C7D2B64736F6C63430008 EQ STOP CALLER ", + "sourceMap": "120:199:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:81:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3315:178:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;3004:116::-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;202:81:13:-;250:25;256:10;268:6;250:5;:25::i;:::-;202:81;:::o;3315:178:1:-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:180::-;6051:77;6048:1;6041:88;6148:4;6145:1;6138:15;6172:4;6169:1;6162:15;6189:320;6233:6;6270:1;6264:4;6260:12;6250:22;;6317:1;6311:4;6307:12;6338:18;6328:81;;6394:4;6386:6;6382:17;6372:27;;6328:81;6456:2;6448:6;6445:14;6425:18;6422:38;6419:84;;6475:18;;:::i;:::-;6419:84;6240:269;6189:320;;;:::o;6515:118::-;6602:24;6620:5;6602:24;:::i;:::-;6597:3;6590:37;6515:118;;:::o;6639:442::-;6788:4;6826:2;6815:9;6811:18;6803:26;;6839:71;6907:1;6896:9;6892:17;6883:6;6839:71;:::i;:::-;6920:72;6988:2;6977:9;6973:18;6964:6;6920:72;:::i;:::-;7002;7070:2;7059:9;7055:18;7046:6;7002:72;:::i;:::-;6639:442;;;;;;:::o;7087:222::-;7180:4;7218:2;7207:9;7203:18;7195:26;;7231:71;7299:1;7288:9;7284:17;7275:6;7231:71;:::i;:::-;7087:222;;;;:::o;7315:180::-;7363:77;7360:1;7353:88;7460:4;7457:1;7450:15;7484:4;7481:1;7474:15;7501:191;7541:3;7560:20;7578:1;7560:20;:::i;:::-;7555:25;;7594:20;7612:1;7594:20;:::i;:::-;7589:25;;7637:1;7634;7630:9;7623:16;;7658:3;7655:1;7652:10;7649:36;;;7665:18;;:::i;:::-;7649:36;7501:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(uint256)": "a0712d68", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0xb85548c8dc1be281ecf4859e9d7b7627c648566cccee03a77ac70c84f7efea45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bce3db5ff6d349d06ff0681afa906fb5399ce0e5501ed073f13773a13b4db33\",\"dweb:/ipfs/QmRw5wyWfiCzyBLRFNgHEFKWoX4rT3Bz6zZMShm9u4uDaA\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/CherryToken.sol": { + "CherryToken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2334": { + "entryPoint": null, + "id": 2334, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f38806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461015d57806395d89b411461018d578063a0712d68146101ab578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b5f565b60405180910390f35b6100db60048036038101906100d69190610c1a565b6102b9565b6040516100e89190610c75565b60405180910390f35b6100f96102dc565b6040516101069190610c9f565b60405180910390f35b61012960048036038101906101249190610cba565b6102e6565b6040516101369190610c75565b60405180910390f35b610147610315565b6040516101549190610d29565b60405180910390f35b61017760048036038101906101729190610d44565b61031e565b6040516101849190610c9f565b60405180910390f35b610195610366565b6040516101a29190610b5f565b60405180910390f35b6101c560048036038101906101c09190610d71565b6103f8565b005b6101e160048036038101906101dc9190610c1a565b610405565b6040516101ee9190610c75565b60405180910390f35b610211600480360381019061020c9190610d9e565b610428565b60405161021e9190610c9f565b60405180910390f35b60606003805461023690610e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610e0d565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104af565b90506102d18185856104b7565b600191505092915050565b6000600254905090565b6000806102f16104af565b90506102fe8582856104c9565b61030985858561055d565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461037590610e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546103a190610e0d565b80156103ee5780601f106103c3576101008083540402835291602001916103ee565b820191906000526020600020905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b6104023382610651565b50565b6000806104106104af565b905061041d81858561055d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c483838360016106d3565b505050565b60006104d58484610428565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105575781811015610547578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053e93929190610e4d565b60405180910390fd5b610556848484840360006106d3565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105cf5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c69190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106415760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106389190610e84565b60405180910390fd5b61064c8383836108aa565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c35760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106ba9190610e84565b60405180910390fd5b6106cf600083836108aa565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107455760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073c9190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b75760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107ae9190610e84565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089b9190610c9f565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fc5780600260008282546108f09190610ece565b925050819055506109cf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610988578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161097f93929190610e4d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a185780600260008282540392505081905550610a65565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac29190610c9f565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b09578082015181840152602081019050610aee565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3182610acf565b610b3b8185610ada565b9350610b4b818560208601610aeb565b610b5481610b15565b840191505092915050565b60006020820190508181036000830152610b798184610b26565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb182610b86565b9050919050565b610bc181610ba6565b8114610bcc57600080fd5b50565b600081359050610bde81610bb8565b92915050565b6000819050919050565b610bf781610be4565b8114610c0257600080fd5b50565b600081359050610c1481610bee565b92915050565b60008060408385031215610c3157610c30610b81565b5b6000610c3f85828601610bcf565b9250506020610c5085828601610c05565b9150509250929050565b60008115159050919050565b610c6f81610c5a565b82525050565b6000602082019050610c8a6000830184610c66565b92915050565b610c9981610be4565b82525050565b6000602082019050610cb46000830184610c90565b92915050565b600080600060608486031215610cd357610cd2610b81565b5b6000610ce186828701610bcf565b9350506020610cf286828701610bcf565b9250506040610d0386828701610c05565b9150509250925092565b600060ff82169050919050565b610d2381610d0d565b82525050565b6000602082019050610d3e6000830184610d1a565b92915050565b600060208284031215610d5a57610d59610b81565b5b6000610d6884828501610bcf565b91505092915050565b600060208284031215610d8757610d86610b81565b5b6000610d9584828501610c05565b91505092915050565b60008060408385031215610db557610db4610b81565b5b6000610dc385828601610bcf565b9250506020610dd485828601610bcf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e2557607f821691505b602082108103610e3857610e37610dde565b5b50919050565b610e4781610ba6565b82525050565b6000606082019050610e626000830186610e3e565b610e6f6020830185610c90565b610e7c6040830184610c90565b949350505050565b6000602082019050610e996000830184610e3e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ed982610be4565b9150610ee483610be4565b9250828201905080821115610efc57610efb610e9f565b5b9291505056fea2646970667358221220cba218623e387e77e642ecbadd2c504e5c6375b80b8c94fa9753dfda3ab8134d64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF38 DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x195 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C0 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x428 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4C9 JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x375 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3A1 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3EE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3EE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x402 CALLER DUP3 PUSH2 0x651 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x410 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x41D DUP2 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D5 DUP5 DUP5 PUSH2 0x428 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x557 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x547 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x556 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D3 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5CF JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x641 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64C DUP4 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C3 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BA SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CF PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x745 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73C SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AE SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A4 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89B SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FC JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F0 SWAP2 SWAP1 PUSH2 0xECE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x988 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA18 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA65 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB09 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB31 DUP3 PUSH2 0xACF JUMP JUMPDEST PUSH2 0xB3B DUP2 DUP6 PUSH2 0xADA JUMP JUMPDEST SWAP4 POP PUSH2 0xB4B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEB JUMP JUMPDEST PUSH2 0xB54 DUP2 PUSH2 0xB15 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB79 DUP2 DUP5 PUSH2 0xB26 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB1 DUP3 PUSH2 0xB86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC1 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDE DUP2 PUSH2 0xBB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF7 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC14 DUP2 PUSH2 0xBEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC31 JUMPI PUSH2 0xC30 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC3F DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC50 DUP6 DUP3 DUP7 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC6F DUP2 PUSH2 0xC5A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC66 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC99 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF2 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD03 DUP7 DUP3 DUP8 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD23 DUP2 PUSH2 0xD0D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5A JUMPI PUSH2 0xD59 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD68 DUP5 DUP3 DUP6 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD87 JUMPI PUSH2 0xD86 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD95 DUP5 DUP3 DUP6 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDC3 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDD4 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE25 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE38 JUMPI PUSH2 0xE37 PUSH2 0xDDE JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE47 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE62 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE3E JUMP JUMPDEST PUSH2 0xE6F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0xE7C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xED9 DUP3 PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xEE4 DUP4 PUSH2 0xBE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xEFC JUMPI PUSH2 0xEFB PUSH2 0xE9F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCB LOG2 XOR PUSH3 0x3E387E PUSH24 0xE642ECBADD2C504E5C6375B80B8C94FA9753DFDA3AB8134D PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "120:201:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:201:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:201:14:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1207, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1747, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1617, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1199, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1225, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1373, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2218, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1064, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 697, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 798, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 789, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_2346": { + "entryPoint": 1016, + "id": 2346, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 551, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 870, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 732, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 742, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1029, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3023, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3077, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3486, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3258, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3098, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 3441, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3646, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3174, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2854, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3216, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3354, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3716, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3661, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3189, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2911, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3231, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3369, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2767, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2778, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3790, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2982, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3162, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2950, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3044, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3341, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2795, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3597, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3743, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3550, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2945, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2837, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3000, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3054, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7695:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5254:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5300:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5302:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5302:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5302:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5275:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5284:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5271:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5271:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5296:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5267:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5267:32:16" + }, + "nodeType": "YulIf", + "src": "5264:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5393:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5408:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5422:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5412:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5437:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5472:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5483:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5468:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5492:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5447:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5447:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5437:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5224:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5235:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5247:6:16", + "type": "" + } + ], + "src": "5188:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5606:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5652:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5654:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5654:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5654:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5627:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5636:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5623:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5623:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5648:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5619:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5619:32:16" + }, + "nodeType": "YulIf", + "src": "5616:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5745:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5760:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5774:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5764:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5789:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5824:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5835:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5820:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5820:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5844:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5799:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5799:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5789:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5872:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5887:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5901:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5891:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5917:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5952:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5963:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5948:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5948:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5972:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5927:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5927:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5917:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5568:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5579:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5591:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5599:6:16", + "type": "" + } + ], + "src": "5523:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6031:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6048:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6051:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6041:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6041:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6041:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6145:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6148:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6138:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6138:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6138:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6169:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6172:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6162:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6162:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6162:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6003:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6240:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6250:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6264:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6270:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6260:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6260:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6250:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6281:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6311:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6317:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6307:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6307:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6285:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6358:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6372:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6386:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6394:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6382:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6382:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6372:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6338:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6331:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6331:26:16" + }, + "nodeType": "YulIf", + "src": "6328:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6461:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6475:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6425:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6448:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6456:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6445:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6445:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6422:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6422:38:16" + }, + "nodeType": "YulIf", + "src": "6419:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6224:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6233:6:16", + "type": "" + } + ], + "src": "6189:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6580:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6597:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6620:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6602:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6602:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6590:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6590:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6590:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6568:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6575:3:16", + "type": "" + } + ], + "src": "6515:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6793:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6803:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6815:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6826:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6811:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6811:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6803:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6883:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6896:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6907:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6892:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6839:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6839:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6839:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6964:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6977:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6988:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6973:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6973:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6920:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6920:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6920:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7046:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7059:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7070:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7055:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7055:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7002:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7002:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7002:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6749:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6761:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6769:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6777:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6788:4:16", + "type": "" + } + ], + "src": "6639:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7185:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7195:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7207:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7218:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7203:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7203:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7195:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7275:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7288:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7299:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7284:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7231:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7231:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7231:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7157:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7169:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7180:4:16", + "type": "" + } + ], + "src": "7087:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7343:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7360:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7363:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7353:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7353:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7353:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7457:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7460:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7450:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7450:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7450:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7481:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7484:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7474:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7474:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7474:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "7315:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7545:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7555:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7578:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7560:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7560:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7555:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7589:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7612:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7594:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7594:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7589:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7623:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7634:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7637:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7630:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7623:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7663:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7665:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7665:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7655:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7658:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7652:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7652:10:16" + }, + "nodeType": "YulIf", + "src": "7649:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7532:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7535:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7541:3:16", + "type": "" + } + ], + "src": "7501:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461015d57806395d89b411461018d578063a0712d68146101ab578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b5f565b60405180910390f35b6100db60048036038101906100d69190610c1a565b6102b9565b6040516100e89190610c75565b60405180910390f35b6100f96102dc565b6040516101069190610c9f565b60405180910390f35b61012960048036038101906101249190610cba565b6102e6565b6040516101369190610c75565b60405180910390f35b610147610315565b6040516101549190610d29565b60405180910390f35b61017760048036038101906101729190610d44565b61031e565b6040516101849190610c9f565b60405180910390f35b610195610366565b6040516101a29190610b5f565b60405180910390f35b6101c560048036038101906101c09190610d71565b6103f8565b005b6101e160048036038101906101dc9190610c1a565b610405565b6040516101ee9190610c75565b60405180910390f35b610211600480360381019061020c9190610d9e565b610428565b60405161021e9190610c9f565b60405180910390f35b60606003805461023690610e0d565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610e0d565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104af565b90506102d18185856104b7565b600191505092915050565b6000600254905090565b6000806102f16104af565b90506102fe8582856104c9565b61030985858561055d565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461037590610e0d565b80601f01602080910402602001604051908101604052809291908181526020018280546103a190610e0d565b80156103ee5780601f106103c3576101008083540402835291602001916103ee565b820191906000526020600020905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b6104023382610651565b50565b6000806104106104af565b905061041d81858561055d565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c483838360016106d3565b505050565b60006104d58484610428565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105575781811015610547578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053e93929190610e4d565b60405180910390fd5b610556848484840360006106d3565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105cf5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c69190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106415760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106389190610e84565b60405180910390fd5b61064c8383836108aa565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c35760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106ba9190610e84565b60405180910390fd5b6106cf600083836108aa565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107455760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073c9190610e84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b75760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107ae9190610e84565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089b9190610c9f565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fc5780600260008282546108f09190610ece565b925050819055506109cf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610988578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161097f93929190610e4d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a185780600260008282540392505081905550610a65565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac29190610c9f565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b09578082015181840152602081019050610aee565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3182610acf565b610b3b8185610ada565b9350610b4b818560208601610aeb565b610b5481610b15565b840191505092915050565b60006020820190508181036000830152610b798184610b26565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb182610b86565b9050919050565b610bc181610ba6565b8114610bcc57600080fd5b50565b600081359050610bde81610bb8565b92915050565b6000819050919050565b610bf781610be4565b8114610c0257600080fd5b50565b600081359050610c1481610bee565b92915050565b60008060408385031215610c3157610c30610b81565b5b6000610c3f85828601610bcf565b9250506020610c5085828601610c05565b9150509250929050565b60008115159050919050565b610c6f81610c5a565b82525050565b6000602082019050610c8a6000830184610c66565b92915050565b610c9981610be4565b82525050565b6000602082019050610cb46000830184610c90565b92915050565b600080600060608486031215610cd357610cd2610b81565b5b6000610ce186828701610bcf565b9350506020610cf286828701610bcf565b9250506040610d0386828701610c05565b9150509250925092565b600060ff82169050919050565b610d2381610d0d565b82525050565b6000602082019050610d3e6000830184610d1a565b92915050565b600060208284031215610d5a57610d59610b81565b5b6000610d6884828501610bcf565b91505092915050565b600060208284031215610d8757610d86610b81565b5b6000610d9584828501610c05565b91505092915050565b60008060408385031215610db557610db4610b81565b5b6000610dc385828601610bcf565b9250506020610dd485828601610bcf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e2557607f821691505b602082108103610e3857610e37610dde565b5b50919050565b610e4781610ba6565b82525050565b6000606082019050610e626000830186610e3e565b610e6f6020830185610c90565b610e7c6040830184610c90565b949350505050565b6000602082019050610e996000830184610e3e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ed982610be4565b9150610ee483610be4565b9250828201905080821115610efc57610efb610e9f565b5b9291505056fea2646970667358221220cba218623e387e77e642ecbadd2c504e5c6375b80b8c94fa9753dfda3ab8134d64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x195 PUSH2 0x366 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0xB5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C0 SWAP2 SWAP1 PUSH2 0xD71 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x428 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4C9 JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x375 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3A1 SWAP1 PUSH2 0xE0D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3EE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3EE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x402 CALLER DUP3 PUSH2 0x651 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x410 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP PUSH2 0x41D DUP2 DUP6 DUP6 PUSH2 0x55D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C4 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D5 DUP5 DUP5 PUSH2 0x428 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x557 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x547 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x556 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D3 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5CF JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C6 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x641 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x638 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64C DUP4 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C3 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BA SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CF PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x745 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73C SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AE SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A4 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89B SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FC JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F0 SWAP2 SWAP1 PUSH2 0xECE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x988 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA18 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA65 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB09 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEE JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB31 DUP3 PUSH2 0xACF JUMP JUMPDEST PUSH2 0xB3B DUP2 DUP6 PUSH2 0xADA JUMP JUMPDEST SWAP4 POP PUSH2 0xB4B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEB JUMP JUMPDEST PUSH2 0xB54 DUP2 PUSH2 0xB15 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB79 DUP2 DUP5 PUSH2 0xB26 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB1 DUP3 PUSH2 0xB86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC1 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDE DUP2 PUSH2 0xBB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF7 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP2 EQ PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC14 DUP2 PUSH2 0xBEE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC31 JUMPI PUSH2 0xC30 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC3F DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC50 DUP6 DUP3 DUP7 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC6F DUP2 PUSH2 0xC5A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC66 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC99 DUP2 PUSH2 0xBE4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD3 JUMPI PUSH2 0xCD2 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE1 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF2 DUP7 DUP3 DUP8 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD03 DUP7 DUP3 DUP8 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD23 DUP2 PUSH2 0xD0D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5A JUMPI PUSH2 0xD59 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD68 DUP5 DUP3 DUP6 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD87 JUMPI PUSH2 0xD86 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD95 DUP5 DUP3 DUP6 ADD PUSH2 0xC05 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xB81 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDC3 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDD4 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE25 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE38 JUMPI PUSH2 0xE37 PUSH2 0xDDE JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE47 DUP2 PUSH2 0xBA6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE62 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE3E JUMP JUMPDEST PUSH2 0xE6F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC90 JUMP JUMPDEST PUSH2 0xE7C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC90 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE99 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xED9 DUP3 PUSH2 0xBE4 JUMP JUMPDEST SWAP2 POP PUSH2 0xEE4 DUP4 PUSH2 0xBE4 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xEFC JUMPI PUSH2 0xEFB PUSH2 0xE9F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCB LOG2 XOR PUSH3 0x3E387E PUSH24 0xE642ECBADD2C504E5C6375B80B8C94FA9753DFDA3AB8134D PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "120:201:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:81:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3315:178:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;3004:116::-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;204:81:14:-;252:25;258:10;270:6;252:5;:25::i;:::-;204:81;:::o;3315:178:1:-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:180::-;6051:77;6048:1;6041:88;6148:4;6145:1;6138:15;6172:4;6169:1;6162:15;6189:320;6233:6;6270:1;6264:4;6260:12;6250:22;;6317:1;6311:4;6307:12;6338:18;6328:81;;6394:4;6386:6;6382:17;6372:27;;6328:81;6456:2;6448:6;6445:14;6425:18;6422:38;6419:84;;6475:18;;:::i;:::-;6419:84;6240:269;6189:320;;;:::o;6515:118::-;6602:24;6620:5;6602:24;:::i;:::-;6597:3;6590:37;6515:118;;:::o;6639:442::-;6788:4;6826:2;6815:9;6811:18;6803:26;;6839:71;6907:1;6896:9;6892:17;6883:6;6839:71;:::i;:::-;6920:72;6988:2;6977:9;6973:18;6964:6;6920:72;:::i;:::-;7002;7070:2;7059:9;7055:18;7046:6;7002:72;:::i;:::-;6639:442;;;;;;:::o;7087:222::-;7180:4;7218:2;7207:9;7203:18;7195:26;;7231:71;7299:1;7288:9;7284:17;7275:6;7231:71;:::i;:::-;7087:222;;;;:::o;7315:180::-;7363:77;7360:1;7353:88;7460:4;7457:1;7450:15;7484:4;7481:1;7474:15;7501:191;7541:3;7560:20;7578:1;7560:20;:::i;:::-;7555:25;;7594:20;7612:1;7594:20;:::i;:::-;7589:25;;7637:1;7634;7630:9;7623:16;;7658:3;7655:1;7652:10;7649:36;;;7665:18;;:::i;:::-;7649:36;7501:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "mint(uint256)": "a0712d68", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0x9c2a5d418fa5db05c0fdfdc8ad382e43ec07436182431aca3f7baf4a25bd48db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de1fd668b6f6f58194e2160a4d0b8a61c5f5bbe5a3e9cdfc72839c823ac0c976\",\"dweb:/ipfs/QmcdPK6zpb9hCtrSrrgmBsB7e3vMmfnancwpAjXYi1s49f\"]}},\"version\":1}" + } + }, + "contracts/core/wrapped-native-token/WEdu.sol": { + "WrappedEdutoken": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_188": { + "entryPoint": null, + "id": 188, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_2360": { + "entryPoint": null, + "id": 2360, + "parameterSlots": 0, + "returnSlots": 0 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 328, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 170, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 649, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 804, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 275, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 474, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 742, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 228, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 181, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 524, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 365, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 729, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 582, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 378, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 534, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5231:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:16", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:16" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:16" + }, + "nodeType": "YulIf", + "src": "623:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:16" + }, + "nodeType": "YulIf", + "src": "714:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:16", + "type": "" + } + ], + "src": "484:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:16", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:16", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:16" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:16" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:16" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:16" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:16", + "type": "" + } + ], + "src": "810:141:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:16" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:16", + "type": "" + } + ], + "src": "957:93:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:16" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:16" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:16", + "type": "" + } + ], + "src": "1056:107:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:16", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:16", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:16" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:16", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:16" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:16" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:16" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:16" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:16" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:16" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:16", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:16", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:16", + "type": "" + } + ], + "src": "1169:393:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:16", + "type": "" + } + ], + "src": "1568:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:16" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:16", + "type": "" + } + ], + "src": "1651:60:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:16" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:16" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:16" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:16" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:16", + "type": "" + } + ], + "src": "1717:142:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:16" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:16" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:16", + "type": "" + } + ], + "src": "1865:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:16", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:16" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:16" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:16" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:16" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:16" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:16" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:16" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:16" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:16", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:16", + "type": "" + } + ], + "src": "1946:269:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:16", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:16" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:16", + "type": "" + } + ], + "src": "2221:73:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:16", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:16" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:16" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:16" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:16" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:16" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:16", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:16", + "type": "" + } + ], + "src": "2300:189:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:16" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:16" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:16", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:16" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:16", + "statements": [] + }, + "src": "2555:120:16" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:16", + "type": "" + } + ], + "src": "2495:186:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:16", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:16" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:16", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:16" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:16" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:16", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:16" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:16" + }, + "nodeType": "YulIf", + "src": "3071:49:16" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:16" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:16" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:16" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:16" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:16" + }, + "nodeType": "YulIf", + "src": "2777:446:16" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:16", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:16", + "type": "" + } + ], + "src": "2687:543:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:16", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:16" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:16" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:16" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:16" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:16", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:16", + "type": "" + } + ], + "src": "3236:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:16", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:16" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:16" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:16" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:16" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:16" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:16" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:16", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:16", + "type": "" + } + ], + "src": "3359:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:16" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:16" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:16", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:16" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:16" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:16" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:16" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:16", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:16", + "type": "" + } + ], + "src": "3533:295:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:16", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:16" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:16", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:16" + }, + "nodeType": "YulIf", + "src": "4038:56:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:16" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:16" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:16" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:16" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:16" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:16" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:16" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:16" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:16", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:16" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:16", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:16" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:16", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:16" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:16" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:16" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:16" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:16", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:16" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:16", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:16" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:16" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:16", + "statements": [] + }, + "src": "4524:208:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:16" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:16" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:16" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:16", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:16" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:16" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:16" + }, + "nodeType": "YulIf", + "src": "4745:179:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:16" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:16" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:16" + }, + "nodeType": "YulIf", + "src": "5041:77:16" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:16" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:16" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:16" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:16" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:16" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:16", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:16" + }, + "nodeType": "YulSwitch", + "src": "4335:887:16" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "3914:4:16", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:16", + "type": "" + } + ], + "src": "3833:1395:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610fa0806200041b6000396000f3fe6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea26469706673582212207e6b5befdb845ad550edcffa2279f3e36101f87d49100a0be37c92c796e6e5dc64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFA0 DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x252 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAB PUSH2 0x28F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF5 SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x113 PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14B SWAP2 SWAP1 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x37D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xDAC JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH2 0x3CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x460 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xDD9 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x279 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x286 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x29E SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2CA SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x317 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2EC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x317 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x32C PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x339 DUP2 DUP6 DUP6 PUSH2 0x51F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x359 PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x366 DUP6 DUP3 DUP6 PUSH2 0x531 JUMP JUMPDEST PUSH2 0x371 DUP6 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3DD SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x409 SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x456 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x42B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x456 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x439 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x46B PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x478 DUP2 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x48D CALLER DUP3 PUSH2 0x6B9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x52C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x73B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53D DUP5 DUP5 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x5BF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5AF JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5BE DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x73B JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x637 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62E SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6A9 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6A0 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B4 DUP4 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x72B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x722 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x737 PUSH1 0x0 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x81F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x816 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x90C JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x903 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x964 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x958 SWAP2 SWAP1 PUSH2 0xF36 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9E7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA80 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xACD JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB71 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xB56 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB99 DUP3 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0xBA3 DUP2 DUP6 PUSH2 0xB42 JUMP JUMPDEST SWAP4 POP PUSH2 0xBB3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB53 JUMP JUMPDEST PUSH2 0xBBC DUP2 PUSH2 0xB7D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBE1 DUP2 DUP5 PUSH2 0xB8E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC19 DUP3 PUSH2 0xBEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC29 DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP2 EQ PUSH2 0xC34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC46 DUP2 PUSH2 0xC20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5F DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP2 EQ PUSH2 0xC6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC7C DUP2 PUSH2 0xC56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC99 JUMPI PUSH2 0xC98 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCA7 DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCB8 DUP6 DUP3 DUP7 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD7 DUP2 PUSH2 0xCC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCF2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCCE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD01 DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD1C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD49 DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD5A DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD6B DUP7 DUP3 DUP8 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD8B DUP2 PUSH2 0xD75 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC2 JUMPI PUSH2 0xDC1 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDD0 DUP5 DUP3 DUP6 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDEF JUMPI PUSH2 0xDEE PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFD DUP5 DUP3 DUP6 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH2 0xE1C PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE2B DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE3C DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE8D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xE46 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEAF DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xECA PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xEA6 JUMP JUMPDEST PUSH2 0xED7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0xEE4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF01 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEA6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF41 DUP3 PUSH2 0xC4C JUMP JUMPDEST SWAP2 POP PUSH2 0xF4C DUP4 PUSH2 0xC4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xF64 JUMPI PUSH2 0xF63 PUSH2 0xF07 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH31 0x6B5BEFDB845AD550EDCFFA2279F3E36101F87D49100A0BE37C92C796E6E5DC PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "120:221:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:221:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:221:15:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_542": { + "entryPoint": 1311, + "id": 542, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_602": { + "entryPoint": 1851, + "id": 602, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_mint_491": { + "entryPoint": 1721, + "id": 491, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_767": { + "entryPoint": 1303, + "id": 767, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_650": { + "entryPoint": 1329, + "id": 650, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_381": { + "entryPoint": 1477, + "id": 381, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_458": { + "entryPoint": 2322, + "id": 458, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_278": { + "entryPoint": 1168, + "id": 278, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_302": { + "entryPoint": 801, + "id": 302, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_237": { + "entryPoint": 902, + "id": 237, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_215": { + "entryPoint": 893, + "id": 215, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@deposit_2372": { + "entryPoint": 1155, + "id": 2372, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@name_197": { + "entryPoint": 655, + "id": 197, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_206": { + "entryPoint": 974, + "id": 206, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_224": { + "entryPoint": 836, + "id": 224, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_334": { + "entryPoint": 846, + "id": 334, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_261": { + "entryPoint": 1120, + "id": 261, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3127, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3181, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3500, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3590, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3362, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3202, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 3545, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3750, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3278, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2958, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3320, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3458, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 3820, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3765, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3293, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3015, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3335, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2871, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2882, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3894, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3086, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3266, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3054, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3148, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2899, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3701, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3847, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3654, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3049, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2941, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3104, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3158, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7695:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:16" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:16", + "type": "" + } + ], + "src": "7:99:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:16" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:16" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:16" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:16" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:16", + "type": "" + } + ], + "src": "112:169:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:16" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:16" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:16" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:16" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:16" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:16", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:16" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:16" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:16", + "statements": [] + }, + "src": "378:113:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:16" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:16" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:16", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:16", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:16", + "type": "" + } + ], + "src": "287:246:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:16" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:16", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:16" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:16" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:16" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:16", + "type": "" + } + ], + "src": "539:102:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:16" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:16" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:16" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:16" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:16" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:16" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:16" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:16" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:16" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:16" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:16", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:16" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:16" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:16" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:16" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:16", + "type": "" + } + ], + "src": "647:377:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:16" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:16" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:16", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:16" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:16" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:16" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:16" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1120:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:16", + "type": "" + } + ], + "src": "1030:313:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:16", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:16" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:16" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:16" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:16", + "type": "" + } + ], + "src": "1349:75:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:16" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:16" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:16", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:16", + "type": "" + } + ], + "src": "1676:126:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:16", + "type": "" + } + ], + "src": "1808:96:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:16" + }, + "nodeType": "YulIf", + "src": "1963:63:16" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:16", + "type": "" + } + ], + "src": "1910:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:16" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:16", + "type": "" + } + ], + "src": "2038:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:16", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:16", + "type": "" + } + ], + "src": "2183:77:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:16" + }, + "nodeType": "YulIf", + "src": "2319:63:16" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:16", + "type": "" + } + ], + "src": "2266:122:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:16", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:16" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:16" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:16" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:16" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:16" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:16" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:16", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:16", + "type": "" + } + ], + "src": "2394:139:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:16" + }, + "nodeType": "YulIf", + "src": "2632:119:16" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:16", + "type": "" + } + ], + "src": "2539:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:16", + "type": "" + } + ], + "src": "3019:90:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:16" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:16" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:16" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:16", + "type": "" + } + ], + "src": "3115:109:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:16" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:16" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:16", + "type": "" + } + ], + "src": "3230:210:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:16" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:16", + "type": "" + } + ], + "src": "3446:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:16", + "type": "" + } + ], + "src": "3570:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:16" + }, + "nodeType": "YulIf", + "src": "3908:119:16" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:16", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:16" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:16", + "type": "" + } + ], + "src": "3798:619:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:16", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:16", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:16" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:16" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:16", + "type": "" + } + ], + "src": "4423:86:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:16" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:16" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:16" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:16", + "type": "" + } + ], + "src": "4515:112:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:16" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:16" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:16", + "type": "" + } + ], + "src": "4633:214:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:16" + }, + "nodeType": "YulIf", + "src": "4929:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:16", + "type": "" + } + ], + "src": "4853:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5254:263:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5300:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5302:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5302:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5302:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5275:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5284:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5271:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5271:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5296:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5267:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5267:32:16" + }, + "nodeType": "YulIf", + "src": "5264:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5393:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5408:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5422:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5412:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5437:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5472:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5483:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5468:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5468:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5492:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5447:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5447:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5437:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5224:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5235:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5247:6:16", + "type": "" + } + ], + "src": "5188:329:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5606:391:16", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5652:83:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5654:77:16" + }, + "nodeType": "YulFunctionCall", + "src": "5654:79:16" + }, + "nodeType": "YulExpressionStatement", + "src": "5654:79:16" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5627:7:16" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5636:9:16" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5623:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5623:23:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5648:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5619:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5619:32:16" + }, + "nodeType": "YulIf", + "src": "5616:119:16" + }, + { + "nodeType": "YulBlock", + "src": "5745:117:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5760:15:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5774:1:16", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5764:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5789:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5824:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5835:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5820:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5820:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5844:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5799:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5799:53:16" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5789:6:16" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5872:118:16", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5887:16:16", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5901:2:16", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5891:6:16", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5917:63:16", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5952:9:16" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5963:6:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5948:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "5948:22:16" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5972:7:16" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5927:20:16" + }, + "nodeType": "YulFunctionCall", + "src": "5927:53:16" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5917:6:16" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5568:9:16", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5579:7:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5591:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5599:6:16", + "type": "" + } + ], + "src": "5523:474:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6031:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6048:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6051:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6041:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6041:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6041:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6145:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6148:4:16", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6138:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6138:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6138:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6169:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6172:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6162:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6162:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6162:15:16" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6003:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6240:269:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6250:22:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6264:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6270:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6260:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6260:12:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6250:6:16" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6281:38:16", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6311:4:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6317:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6307:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6307:12:16" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6285:18:16", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6358:51:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6372:27:16", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6386:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6394:4:16", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6382:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6382:17:16" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6372:6:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6338:18:16" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6331:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6331:26:16" + }, + "nodeType": "YulIf", + "src": "6328:81:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6461:42:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6475:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "6475:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6475:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6425:18:16" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6448:6:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6456:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6445:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6445:14:16" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6422:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "6422:38:16" + }, + "nodeType": "YulIf", + "src": "6419:84:16" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6224:4:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6233:6:16", + "type": "" + } + ], + "src": "6189:320:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6580:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6597:3:16" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6620:5:16" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "6602:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "6602:24:16" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6590:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "6590:37:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6590:37:16" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6568:5:16", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6575:3:16", + "type": "" + } + ], + "src": "6515:118:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6793:288:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6803:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6815:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6826:2:16", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6811:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6811:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6803:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6883:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6896:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6907:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6892:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6892:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6839:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6839:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6839:71:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6964:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6977:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6988:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6973:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "6973:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6920:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "6920:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "6920:72:16" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7046:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7059:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7070:2:16", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7055:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7055:18:16" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "7002:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7002:72:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7002:72:16" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6749:9:16", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6761:6:16", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6769:6:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6777:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6788:4:16", + "type": "" + } + ], + "src": "6639:442:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7185:124:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7195:26:16", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7207:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7218:2:16", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7203:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7203:18:16" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7195:4:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7275:6:16" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7288:9:16" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7299:1:16", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7284:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7284:17:16" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7231:43:16" + }, + "nodeType": "YulFunctionCall", + "src": "7231:71:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7231:71:16" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7157:9:16", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7169:6:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7180:4:16", + "type": "" + } + ], + "src": "7087:222:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7343:152:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7360:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7363:77:16", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7353:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7353:88:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7353:88:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7457:1:16", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7460:4:16", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7450:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7450:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7450:15:16" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7481:1:16", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7484:4:16", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7474:6:16" + }, + "nodeType": "YulFunctionCall", + "src": "7474:15:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7474:15:16" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "7315:180:16" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7545:147:16", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7555:25:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7578:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7560:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7560:20:16" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7555:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7589:25:16", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7612:1:16" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7594:17:16" + }, + "nodeType": "YulFunctionCall", + "src": "7594:20:16" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7589:1:16" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7623:16:16", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7634:1:16" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7637:1:16" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7630:3:16" + }, + "nodeType": "YulFunctionCall", + "src": "7630:9:16" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7623:3:16" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7663:22:16", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7665:16:16" + }, + "nodeType": "YulFunctionCall", + "src": "7665:18:16" + }, + "nodeType": "YulExpressionStatement", + "src": "7665:18:16" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7655:1:16" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7658:3:16" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7652:2:16" + }, + "nodeType": "YulFunctionCall", + "src": "7652:10:16" + }, + "nodeType": "YulIf", + "src": "7649:36:16" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7532:1:16", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7535:1:16", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7541:3:16", + "type": "" + } + ], + "src": "7501:191:16" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", + "id": 16, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea26469706673582212207e6b5befdb845ad550edcffa2279f3e36101f87d49100a0be37c92c796e6e5dc64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x252 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAB PUSH2 0x28F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF5 SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x113 PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14B SWAP2 SWAP1 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17B PUSH2 0x37D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x188 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0xDAC JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH2 0x3CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x205 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x220 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21B SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x460 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22D SWAP2 SWAP1 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x250 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24B SWAP2 SWAP1 PUSH2 0xDD9 JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x279 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x274 SWAP2 SWAP1 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x286 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x29E SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2CA SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x317 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2EC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x317 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x32C PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x339 DUP2 DUP6 DUP6 PUSH2 0x51F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x359 PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x366 DUP6 DUP3 DUP6 PUSH2 0x531 JUMP JUMPDEST PUSH2 0x371 DUP6 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3DD SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x409 SWAP1 PUSH2 0xE75 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x456 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x42B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x456 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x439 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x46B PUSH2 0x517 JUMP JUMPDEST SWAP1 POP PUSH2 0x478 DUP2 DUP6 DUP6 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x48D CALLER DUP3 PUSH2 0x6B9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x52C DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x73B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53D DUP5 DUP5 PUSH2 0x490 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x5BF JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5AF JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5BE DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x73B JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x637 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62E SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6A9 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6A0 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B4 DUP4 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x72B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x722 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x737 PUSH1 0x0 DUP4 DUP4 PUSH2 0x912 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x81F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x816 SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x90C JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x903 SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x964 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x958 SWAP2 SWAP1 PUSH2 0xF36 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9E7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA80 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xACD JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xD07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB71 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xB56 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB99 DUP3 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0xBA3 DUP2 DUP6 PUSH2 0xB42 JUMP JUMPDEST SWAP4 POP PUSH2 0xBB3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB53 JUMP JUMPDEST PUSH2 0xBBC DUP2 PUSH2 0xB7D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBE1 DUP2 DUP5 PUSH2 0xB8E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC19 DUP3 PUSH2 0xBEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC29 DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP2 EQ PUSH2 0xC34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC46 DUP2 PUSH2 0xC20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC5F DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP2 EQ PUSH2 0xC6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC7C DUP2 PUSH2 0xC56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC99 JUMPI PUSH2 0xC98 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCA7 DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xCB8 DUP6 DUP3 DUP7 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD7 DUP2 PUSH2 0xCC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCF2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCCE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD01 DUP2 PUSH2 0xC4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD1C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3A PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD49 DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD5A DUP7 DUP3 DUP8 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD6B DUP7 DUP3 DUP8 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD8B DUP2 PUSH2 0xD75 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC2 JUMPI PUSH2 0xDC1 PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDD0 DUP5 DUP3 DUP6 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDEF JUMPI PUSH2 0xDEE PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFD DUP5 DUP3 DUP6 ADD PUSH2 0xC6D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH2 0xE1C PUSH2 0xBE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE2B DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE3C DUP6 DUP3 DUP7 ADD PUSH2 0xC37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE8D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xE46 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEAF DUP2 PUSH2 0xC0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xECA PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xEA6 JUMP JUMPDEST PUSH2 0xED7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0xEE4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCF8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF01 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEA6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF41 DUP3 PUSH2 0xC4C JUMP JUMPDEST SWAP2 POP PUSH2 0xF4C DUP4 PUSH2 0xC4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xF64 JUMPI PUSH2 0xF63 PUSH2 0xF07 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH31 0x6B5BEFDB845AD550EDCFFA2279F3E36101F87D49100A0BE37C92C796E6E5DC PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "120:221:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;213:92:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3551:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;3004:116::-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;213:92:15:-;272:25;278:10;290:6;272:5;:25::i;:::-;213:92;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:180::-;6051:77;6048:1;6041:88;6148:4;6145:1;6138:15;6172:4;6169:1;6162:15;6189:320;6233:6;6270:1;6264:4;6260:12;6250:22;;6317:1;6311:4;6307:12;6338:18;6328:81;;6394:4;6386:6;6382:17;6372:27;;6328:81;6456:2;6448:6;6445:14;6425:18;6422:38;6419:84;;6475:18;;:::i;:::-;6419:84;6240:269;6189:320;;;:::o;6515:118::-;6602:24;6620:5;6602:24;:::i;:::-;6597:3;6590:37;6515:118;;:::o;6639:442::-;6788:4;6826:2;6815:9;6811:18;6803:26;;6839:71;6907:1;6896:9;6892:17;6883:6;6839:71;:::i;:::-;6920:72;6988:2;6977:9;6973:18;6964:6;6920:72;:::i;:::-;7002;7070:2;7059:9;7055:18;7046:6;7002:72;:::i;:::-;6639:442;;;;;;:::o;7087:222::-;7180:4;7218:2;7207:9;7203:18;7195:26;;7231:71;7299:1;7288:9;7284:17;7275:6;7231:71;:::i;:::-;7087:222;;;;:::o;7315:180::-;7363:77;7360:1;7353:88;7460:4;7457:1;7450:15;7484:4;7481:1;7474:15;7501:191;7541:3;7560:20;7578:1;7560:20;:::i;:::-;7555:25;;7594:20;7612:1;7594:20;:::i;:::-;7589:25;;7637:1;7634;7630:9;7623:16;;7658:3;7655:1;7652:10;7649:36;;;7665:18;;:::i;:::-;7649:36;7501:191;;;;:::o" + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "deposit(uint256)": "b6b55f25", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEdutoken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0x3ded279dafd2a11408ba140d62a70d3c328bee928d0e6ff6bb7a4066b3c6fd49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7489412e52a0e913d72592154bea62ccd33a799dc7ea7bc64ae4cb494a1c7e1\",\"dweb:/ipfs/QmZ8ygUBzTddCiXNwd7ska4AeqUxwwtQZogVXWYR2KpRTY\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/Core uniswap/ignition/deployments/chain-11155111/deployed_addresses.json b/Core uniswap/ignition/deployments/chain-11155111/deployed_addresses.json new file mode 100644 index 00000000..57039ed9 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/deployed_addresses.json @@ -0,0 +1,8 @@ +{ + "AppleTokenModule#AppleToken": "0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5", + "CherryTokenModule#CherryToken": "0x1b5619EB448B3C5F1E44CcD4Ef5e1813A53E98fF", + "PoolFactoryModule#PoolFactory": "0x62e3D5215677776e5830975B707DEFC6F39C76C2", + "LiquidityProviderModule#LiquidityProvider": "0xb7e2979167e46A03Cf44171c349945D7041B6C2D", + "WrappedEduTokenModule#WrappedEduToken": "0xc8089c03b157C10d62eBa18097a1B9cDc2d670d3", + "WrappedEduTokenMod#WrappedEduToken": "0xE3426B959F2178525Beb3875B129eEdDBC95058c" +} diff --git a/Core uniswap/ignition/deployments/chain-11155111/journal.jsonl b/Core uniswap/ignition/deployments/chain-11155111/journal.jsonl new file mode 100644 index 00000000..5f530df5 --- /dev/null +++ b/Core uniswap/ignition/deployments/chain-11155111/journal.jsonl @@ -0,0 +1,32 @@ + +{"chainId":11155111,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"AppleTokenModule#AppleToken","constructorArgs":[],"contractName":"AppleToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"AppleTokenModule#AppleToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"AppleTokenModule#AppleToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"AppleTokenModule#AppleToken","networkInteractionId":1,"nonce":2,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10928868842"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"3522746"}},"hash":"0x195e11619223c3d3653f6362d929d4346c3e175a2315949622f79c0318b3ebb0"},"type":"TRANSACTION_SEND"} +{"futureId":"AppleTokenModule#AppleToken","hash":"0x195e11619223c3d3653f6362d929d4346c3e175a2315949622f79c0318b3ebb0","networkInteractionId":1,"receipt":{"blockHash":"0xef99303f8debf3b60a051eea1173def91a9bfe5f5ab31d01f5ad623238d2b4fc","blockNumber":7055426,"contractAddress":"0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"AppleTokenModule#AppleToken","result":{"address":"0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"CherryTokenModule#CherryToken","constructorArgs":[],"contractName":"CherryToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"CherryTokenModule#CherryToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"CherryTokenModule#CherryToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"CherryTokenModule#CherryToken","networkInteractionId":1,"nonce":11,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"12237303324"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"3522746"}},"hash":"0x7a805ee2662a24fd43f92f28c9c8949f9b31ef0cac6bad5d25303327b1f76da6"},"type":"TRANSACTION_SEND"} +{"futureId":"CherryTokenModule#CherryToken","hash":"0x7a805ee2662a24fd43f92f28c9c8949f9b31ef0cac6bad5d25303327b1f76da6","networkInteractionId":1,"receipt":{"blockHash":"0xe48520ca3e7ecd6379ed9e49a62d7589ba9dbb8123f8da6b98bebaea8794574d","blockNumber":7056357,"contractAddress":"0x1b5619EB448B3C5F1E44CcD4Ef5e1813A53E98fF","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"CherryTokenModule#CherryToken","result":{"address":"0x1b5619EB448B3C5F1E44CcD4Ef5e1813A53E98fF","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"PoolFactoryModule#PoolFactory","constructorArgs":["0xf5c87bfce1999d3e48f0407e43f0db10394a4b37"],"contractName":"PoolFactory","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"PoolFactoryModule#PoolFactory","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"PoolFactoryModule#PoolFactory","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033000000000000000000000000f5c87bfce1999d3e48f0407e43f0db10394a4b37","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"PoolFactoryModule#PoolFactory","networkInteractionId":1,"nonce":12,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"11017190034"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"3522746"}},"hash":"0x64de7f1cba4e9257b6e1f3c9808311ed427fa58e7ac8aebcde92c97a4f4401dd"},"type":"TRANSACTION_SEND"} +{"futureId":"PoolFactoryModule#PoolFactory","hash":"0x64de7f1cba4e9257b6e1f3c9808311ed427fa58e7ac8aebcde92c97a4f4401dd","networkInteractionId":1,"receipt":{"blockHash":"0xd46b1df5972b69d8aca929ba7b179f1ec358c834279a092a01c91ba8ff7c206e","blockNumber":7056376,"contractAddress":"0x62e3D5215677776e5830975B707DEFC6F39C76C2","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"PoolFactoryModule#PoolFactory","result":{"address":"0x62e3D5215677776e5830975B707DEFC6F39C76C2","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"LiquidityProviderModule#LiquidityProvider","constructorArgs":["0x62e3D5215677776e5830975B707DEFC6F39C76C2","0xf5c87bfce1999d3e48f0407e43f0db10394a4b37"],"contractName":"LiquidityProvider","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"LiquidityProviderModule#LiquidityProvider","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"LiquidityProviderModule#LiquidityProvider","networkInteraction":{"data":"0x60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c6343000814003300000000000000000000000062e3d5215677776e5830975b707defc6f39c76c2000000000000000000000000f5c87bfce1999d3e48f0407e43f0db10394a4b37","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"LiquidityProviderModule#LiquidityProvider","networkInteractionId":1,"nonce":14,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"9533162704"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"3522746"}},"hash":"0x9dc13a81ab3e619553fc6db3f64e134fd0a67e65ea1583210465f5c02a7202a1"},"type":"TRANSACTION_SEND"} +{"futureId":"LiquidityProviderModule#LiquidityProvider","hash":"0x9dc13a81ab3e619553fc6db3f64e134fd0a67e65ea1583210465f5c02a7202a1","networkInteractionId":1,"receipt":{"blockHash":"0x5f5f98ed5b26bbd6a04e83076399cf10f7fd720573e8b7d0009d1dc8e0cb0380","blockNumber":7056423,"contractAddress":"0xb7e2979167e46A03Cf44171c349945D7041B6C2D","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"LiquidityProviderModule#LiquidityProvider","result":{"address":"0xb7e2979167e46A03Cf44171c349945D7041B6C2D","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"WrappedEduTokenModule#WrappedEduToken","constructorArgs":[],"contractName":"WrappedEduToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"WrappedEduTokenModule#WrappedEduToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"WrappedEduTokenModule#WrappedEduToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610fa0806200041b6000396000f3fe6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"WrappedEduTokenModule#WrappedEduToken","networkInteractionId":1,"nonce":26,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1305815566"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1069700"}},"hash":"0xa21179a001cf2b0f588af75f8834be87253ef69cbfa7eb839d2318c6787ae374"},"type":"TRANSACTION_SEND"} +{"futureId":"WrappedEduTokenModule#WrappedEduToken","hash":"0xa21179a001cf2b0f588af75f8834be87253ef69cbfa7eb839d2318c6787ae374","networkInteractionId":1,"receipt":{"blockHash":"0x7103fe4db9fdfef2f823487322f56443363ab6a74987c42119577c3c3350640a","blockNumber":7066874,"contractAddress":"0xc8089c03b157C10d62eBa18097a1B9cDc2d670d3","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"WrappedEduTokenModule#WrappedEduToken","result":{"address":"0xc8089c03b157C10d62eBa18097a1B9cDc2d670d3","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"WrappedEduTokenMod#WrappedEduToken","constructorArgs":[],"contractName":"WrappedEduToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"WrappedEduTokenMod#WrappedEduToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"WrappedEduTokenMod#WrappedEduToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"WrappedEduTokenMod#WrappedEduToken","networkInteractionId":1,"nonce":29,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"4313178378"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"6025390"}},"hash":"0x1eb099c8cbcd99b62eee9ff8351497d0df7467e127f54b46171e55306e6e3898"},"type":"TRANSACTION_SEND"} +{"futureId":"WrappedEduTokenMod#WrappedEduToken","hash":"0x1eb099c8cbcd99b62eee9ff8351497d0df7467e127f54b46171e55306e6e3898","networkInteractionId":1,"receipt":{"blockHash":"0x7949fc6e03bd25bfe8b93656254f81a7019c171da40b49fdc6d1e73325a20611","blockNumber":7075268,"contractAddress":"0xE3426B959F2178525Beb3875B129eEdDBC95058c","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"WrappedEduTokenMod#WrappedEduToken","result":{"address":"0xE3426B959F2178525Beb3875B129eEdDBC95058c","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/Core uniswap/ignition/modules/01-deploy-poolfactory.js b/Core uniswap/ignition/modules/01-deploy-poolfactory.js new file mode 100644 index 00000000..c8baae0e --- /dev/null +++ b/Core uniswap/ignition/modules/01-deploy-poolfactory.js @@ -0,0 +1,19 @@ +// This setup uses Hardhat Ignition to manage smart contract deployments. +// Learn more about it at https://hardhat.org/ignition + +const { buildModule } = require("@nomicfoundation/hardhat-ignition/modules"); + +const JAN_1ST_2030 = 1893456000; +const ONE_GWEI = 1_000_000_000n; + +module.exports = buildModule("PoolFactoryModule", (m) => { + const deployer = m.getAccount(0); + + const poolFactory = m.contract("PoolFactory", [deployer]); + + console.log(poolFactory.target); + + return { poolFactory }; +}); + +//address: 0x62e3D5215677776e5830975B707DEFC6F39C76C2 diff --git a/Core uniswap/ignition/modules/02-deploy-liquidityprovider.js b/Core uniswap/ignition/modules/02-deploy-liquidityprovider.js new file mode 100644 index 00000000..685db5df --- /dev/null +++ b/Core uniswap/ignition/modules/02-deploy-liquidityprovider.js @@ -0,0 +1,19 @@ +// This setup uses Hardhat Ignition to manage smart contract deployments. +// Learn more about it at https://hardhat.org/ignition + +const { buildModule } = require("@nomicfoundation/hardhat-ignition/modules"); + +const JAN_1ST_2030 = 1893456000; +const ONE_GWEI = 1_000_000_000n; + +module.exports = buildModule("LiquidityProviderModule", (m) => { + const deployer = m.getAccount(0); + + const liquidityProvider = m.contract("LiquidityProvider", ["0x62e3D5215677776e5830975B707DEFC6F39C76C2", deployer]); + + console.log(liquidityProvider.target); + + return {liquidityProvider }; +}); + +//address: 0xb7e2979167e46A03Cf44171c349945D7041B6C2D \ No newline at end of file diff --git a/Core uniswap/ignition/modules/03-deploy-tokens.js b/Core uniswap/ignition/modules/03-deploy-tokens.js new file mode 100644 index 00000000..c3823a14 --- /dev/null +++ b/Core uniswap/ignition/modules/03-deploy-tokens.js @@ -0,0 +1,41 @@ +// This setup uses Hardhat Ignition to manage smart contract deployments. +// Learn more about it at https://hardhat.org/ignition + +const { buildModule } = require("@nomicfoundation/hardhat-ignition/modules"); + + + +module.exports = buildModule("CherryTokenModule", (m) => { + const deployer = m.getAccount(0); + + const cherryToken = m.contract("CherryToken", []); + + console.log(cherryToken.target); + + return { cherryToken }; +}); + +// // module.exports = buildModule("AppleTokenModule", (m) => { +// // const deployer = m.getAccount(0); + +// // const appleToken = m.contract("AppleToken", []); + +// // console.log(appleToken.target); + +// // return { appleToken }; +// }); + + + // module.exports = buildModule("WrappedEduTokenMod", (m) => { + // const deployer = m.getAccount(0); + + // const wrappedEduToken = m.contract("WrappedEduToken", []); + + // console.log(wrappedEduToken.target); + + // return { wrappedEduToken }; + // }); + + +// apple address: 0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5 +// cherry address: 0x1b5619EB448B3C5F1E44CcD4Ef5e1813A53E98fF diff --git a/Core uniswap/package-lock.json b/Core uniswap/package-lock.json new file mode 100644 index 00000000..a96c9e43 --- /dev/null +++ b/Core uniswap/package-lock.json @@ -0,0 +1,7824 @@ +{ + "name": "reuse", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "reuse", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@openzeppelin/contracts": "^5.1.0", + "@uniswap/v2-core": "^1.0.1", + "@uniswap/v2-periphery": "^1.1.0-beta.0", + "dotenv": "^16.4.5" + }, + "devDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.7", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "ethers": "^6.13.4", + "hardhat": "^2.22.15" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/edr": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.4.tgz", + "integrity": "sha512-YgrSuT3yo5ZQkbvBGqQ7hG+RDvz3YygSkddg4tb1Z0Y6pLXFzwrcEwWaJCFAVeeZxdxGfCgGMUYgRVneK+WXkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.6.4", + "@nomicfoundation/edr-darwin-x64": "0.6.4", + "@nomicfoundation/edr-linux-arm64-gnu": "0.6.4", + "@nomicfoundation/edr-linux-arm64-musl": "0.6.4", + "@nomicfoundation/edr-linux-x64-gnu": "0.6.4", + "@nomicfoundation/edr-linux-x64-musl": "0.6.4", + "@nomicfoundation/edr-win32-x64-msvc": "0.6.4" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.4.tgz", + "integrity": "sha512-QNQErISLgssV9+qia8sIjRANqtbW8snSDvjspixT/kSQ5ZSGxxctTg7x72wPSrcu8+EBEveIe5uqENIp5GH8HQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.4.tgz", + "integrity": "sha512-cjVmREiwByyc9+oGfvAh49IAw+oVJHF9WWYRD+Tm/ZlSpnEVWxrGNBak2bd/JSYjn+mZE7gmWS4SMRi4nKaLUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.4.tgz", + "integrity": "sha512-96o9kRIVD6W5VkgKvUOGpWyUGInVQ5BRlME2Fa36YoNsRQMaKtmYJEU0ACosYES6ZTpYC8U5sjMulvPtVoEfOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.4.tgz", + "integrity": "sha512-+JVEW9e5plHrUfQlSgkEj/UONrIU6rADTEk+Yp9pbe+mzNkJdfJYhs5JYiLQRP4OjxH4QOrXI97bKU6FcEbt5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.4.tgz", + "integrity": "sha512-nzYWW+fO3EZItOeP4CrdMgDXfaGBIBkKg0Y/7ySpUxLqzut40O4Mb0/+quqLAFkacUSWMlFp8nsmypJfOH5zoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.4.tgz", + "integrity": "sha512-QFRoE9qSQ2boRrVeQ1HdzU+XN7NUgwZ1SIy5DQt4d7jCP+5qTNsq8LBNcqhRBOATgO63nsweNUhxX/Suj5r1Sw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.4.tgz", + "integrity": "sha512-2yopjelNkkCvIjUgBGhrn153IBPLwnsDeNiq6oA0WkeM8tGmQi4td+PGi9jAriUDAkc59Yoi2q9hYA6efiY7Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "dev": true, + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.8.tgz", + "integrity": "sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" + } + }, + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.8.tgz", + "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.7.tgz", + "integrity": "sha512-RFhGazR0/JqHxuuIxjjMmM+nWFqEvA7wcVqcX7vUqqmAIGuok4HhnWQH8aOvBaVguiXvvlFDJL0PIlxmkFgIUg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nomicfoundation/ignition-core": "^0.15.7", + "@nomicfoundation/ignition-ui": "^0.15.7", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "json5": "^2.2.3", + "prompts": "^2.4.2" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.7.tgz", + "integrity": "sha512-pUZWQeFNMwDe6F/yKIJsCo+87elk/M/Edjp6AnWWIBplRyPa13Nh63+yOqMSSd9Mx9lLuBaEGnYXoI2Uz2wYZA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.4", + "@nomicfoundation/hardhat-ignition": "^0.15.7", + "@nomicfoundation/ignition-core": "^0.15.7", + "ethers": "^6.7.0", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.12.tgz", + "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", + "chai": "^4.2.0", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.3.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.11.tgz", + "integrity": "sha512-lGIo4dNjVQFdsiEgZp3KP6ntLiF7xJEJsbNHfSyIiFCyI0Yv0518ElsFtMC5uCuHEChiBBMrib9jWQvHHT+X3Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.7.tgz", + "integrity": "sha512-C4/0V/q2gNxKDt88cMr+Oxlf4NINQ7QgmJyciQ1/6UdCRUg+/Pgdgpd3vgGXQVTotq50Q/BU4ofNUAD/8HRqtg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.7.tgz", + "integrity": "sha512-pj2LmXylgbHOTNrkFqFrre/FAOjcwYl4VKIKVH/QMMBH/DatbiT8aC5n9o2fbLD8uwlPEesD+uXZuKCE71KFBg==", + "dev": true, + "peer": true + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz", + "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.2", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.2", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.2" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz", + "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz", + "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz", + "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz", + "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz", + "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz", + "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz", + "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.1.0.tgz", + "integrity": "sha512-p1ULhl7BXzjjbha5aqst+QMLY+4/LCWADXOCsmLHRM77AqiPjnd9vvUN9sosUfhL9JGKpZ0TjEGxgvnizmWGSA==", + "license": "MIT" + }, + "node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" + } + }, + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typechain/hardhat/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@typechain/hardhat/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", + "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/mocha": { + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.9.tgz", + "integrity": "sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@uniswap/lib": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@uniswap/lib/-/lib-1.1.1.tgz", + "integrity": "sha512-2yK7sLpKIT91TiS5sewHtOa7YuM8IuBXVl4GZv2jZFys4D2sY7K5vZh6MqD25TPA95Od+0YzCVq6cTF2IKrOmg==", + "license": "GPL-3.0-or-later", + "engines": { + "node": ">=10" + } + }, + "node_modules/@uniswap/v2-core": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.1.tgz", + "integrity": "sha512-MtybtkUPSyysqLY2U210NBDeCHX+ltHt3oADGdjqoThZaFRDKwM6k1Nb3F0A3hk5hwuQvytFWhrWHOEq6nVJ8Q==", + "license": "GPL-3.0-or-later", + "engines": { + "node": ">=10" + } + }, + "node_modules/@uniswap/v2-periphery": { + "version": "1.1.0-beta.0", + "resolved": "https://registry.npmjs.org/@uniswap/v2-periphery/-/v2-periphery-1.1.0-beta.0.tgz", + "integrity": "sha512-6dkwAMKza8nzqYiXEr2D86dgW3TTavUvCR0w2Tu33bAbM8Ah43LKAzH7oKKPRT5VJQaMi1jtkGs1E8JPor1n5g==", + "license": "GPL-3.0-or-later", + "dependencies": { + "@uniswap/lib": "1.1.1", + "@uniswap/v2-core": "1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@uniswap/v2-periphery/node_modules/@uniswap/v2-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.0.tgz", + "integrity": "sha512-BJiXrBGnN8mti7saW49MXwxDBRFiWemGetE58q8zgfnPPzQKq55ADltEILqOt6VFZ22kVeVKbF8gVd8aY3l7pA==", + "license": "GPL-3.0-or-later", + "engines": { + "node": ">=10" + } + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "license": "BSD-3-Clause OR MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", + "dev": true, + "license": "WTFPL", + "peer": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "dev": true, + "peer": true + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "peer": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", + "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "deprecated": "This library has been deprecated and usage is discouraged.", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethers": { + "version": "6.13.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz", + "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hardhat": { + "version": "2.22.15", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.15.tgz", + "integrity": "sha512-BpTGa9PE/sKAaHi4s/S1e9WGv63DR1m7Lzfd60C8gSEchDPfAJssVRSq0MZ2v2k76ig9m0kHAwVLf5teYwu/Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.6.4", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^4.0.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "json-stream-stringify": "^3.1.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.8.26", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json-stream-stringify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", + "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=7.10.1" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true, + "peer": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "peer": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true, + "license": "MIT" + }, + "node_modules/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.7", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/secp256k1/node_modules/elliptic": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solidity-coverage": { + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", + "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.18.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "dev": true, + "license": "WTFPL OR MIT", + "peer": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/web3-utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "dev": true, + "license": "LGPL-3.0", + "peer": true, + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Core uniswap/package.json b/Core uniswap/package.json new file mode 100644 index 00000000..454baa83 --- /dev/null +++ b/Core uniswap/package.json @@ -0,0 +1,24 @@ +{ + "name": "reuse", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "description": "", + "devDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.7", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "ethers": "^6.13.4", + "hardhat": "^2.22.15" + }, + "dependencies": { + "@openzeppelin/contracts": "^5.1.0", + "@uniswap/v2-core": "^1.0.1", + "@uniswap/v2-periphery": "^1.1.0-beta.0", + "dotenv": "^16.4.5" + } +} diff --git a/Core uniswap/scripts/deployTokens.js b/Core uniswap/scripts/deployTokens.js new file mode 100644 index 00000000..1489d22a --- /dev/null +++ b/Core uniswap/scripts/deployTokens.js @@ -0,0 +1,37 @@ +const hre = require("hardhat"); +const { + loadFixture + } = require("@nomicfoundation/hardhat-toolbox/network-helpers"); + +async function main() { + + // const cherryTokenFactory = await hre.ethers.getContractFactory("CherryToken"); + // const storage = await cherryTokenFactory.deploy(); + + // console.log("Storage contract deployed to:", storage.target); + + // const appleTokenFactory = await hre.ethers.getContractFactory("AppleToken"); + // const appleToken = await appleTokenFactory.deploy(); + + // console.log("Storage contract deployed to:", appleToken.target); + + const wrappedTokenFactory = await hre.ethers.getContractFactory("WrappedCoreToken"); + const wrappedToken = await wrappedTokenFactory.deploy(); + + console.log("Storage contract deployed to:", wrappedToken.target); + +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); + + + +// CORE: +// CherryToken contract deployed to: 0xc04229AC77a2A66c52Cc9cB09dCEfE9e89d47bFa +// AppleToken contract deployed to: 0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5 +// WrappedCoreToken contract deployed to: 0xAA4CA018D432b66c65c85467FEb08036B860362d \ No newline at end of file diff --git a/Core uniswap/scripts/deploy_factory.js b/Core uniswap/scripts/deploy_factory.js new file mode 100644 index 00000000..da1d9f11 --- /dev/null +++ b/Core uniswap/scripts/deploy_factory.js @@ -0,0 +1,25 @@ +const hre = require("hardhat"); +const { + loadFixture + } = require("@nomicfoundation/hardhat-toolbox/network-helpers"); + +async function main() { + + const poolFactoryContract = await hre.ethers.getContractFactory("PoolFactory"); + const poolFactory = await poolFactoryContract.deploy("0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5"); + + console.log("Storage contract deployed to:", poolFactory.target); + + +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); + + + +// CORE: PoolFactory contract deployed to: 0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382 \ No newline at end of file diff --git a/Core uniswap/scripts/deploy_liquidity.js b/Core uniswap/scripts/deploy_liquidity.js new file mode 100644 index 00000000..adfffa51 --- /dev/null +++ b/Core uniswap/scripts/deploy_liquidity.js @@ -0,0 +1,24 @@ +const hre = require("hardhat"); +const { + loadFixture + } = require("@nomicfoundation/hardhat-toolbox/network-helpers"); + +async function main() { + + const liquidityContract = await hre.ethers.getContractFactory("LiquidityProvider"); + const liquidity = await liquidityContract.deploy("0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382", "0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382"); + + console.log("Storage contract deployed to:", liquidity.target); + +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); + + + +// CORE: Liquidity contract deployed to: 0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382 \ No newline at end of file diff --git a/Core uniswap/test/swap-test.js b/Core uniswap/test/swap-test.js new file mode 100644 index 00000000..7b9ea057 --- /dev/null +++ b/Core uniswap/test/swap-test.js @@ -0,0 +1,157 @@ +const { + time, + loadFixture, +} = require("@nomicfoundation/hardhat-toolbox/network-helpers"); +const { anyValue } = require("@nomicfoundation/hardhat-chai-matchers/withArgs"); +const { expect } = require("chai"); + +describe("Lock", function () { + // We define a fixture to reuse the same setup in every test. + // We use loadFixture to run this setup once, snapshot that state, + // and reset Hardhat Network to that snapshot in every test. + async function deployDefi() { + + // Contracts are deployed using the first signer/account by default + const [owner, otherAccount] = await ethers.getSigners(); + console.log("Heyyyyyyy"); + console.log(owner); + console.log("Hiiiiii") + + // const Lock = await ethers.getContractFactory("Lock"); + // const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); + + const cherryToken = await ethers.getContractFactory("CherryToken"); + const cherryContract = await cherryToken.deploy(); + + const appleToken = await ethers.getContractFactory("AppleToken"); + const appleContract = await appleToken.deploy(); + + const factory = await ethers.getContractFactory("PoolFactory"); + const factoryContract = await factory.deploy(owner.address); + + const liquidity= await ethers.getContractFactory("LiquidityProvider"); + const liquidityContract = await liquidity.deploy(factoryContract.target, owner); + + return { cherryContract, owner, appleContract, factoryContract, liquidityContract }; + } + + describe("Deployment", function () { + it("Checks if it creates pair", async function () { + const { factoryContract, cherryContract, appleContract } = await loadFixture(deployDefi); + + const pair = await factoryContract.createPool(cherryContract.target, appleContract.target); + // console.log(pair.target); + const pairAddress = await factoryContract.getTokenPairs( + cherryContract.target, + appleContract.target + ); + // console.log(pairAddress); + expect(pairAddress).to.not.equal(ethers.ZeroAddress); + }); + + + it("checks if its adds liquidity", async function () { + const { factoryContract, cherryContract, appleContract, owner, liquidityContract} = await loadFixture(deployDefi); + console.log("heyy"); + await cherryContract.mint(owner.address, ethers.parseEther("10")); + await appleContract.mint(owner.address, ethers.parseEther("10")); + await cherryContract.approve(liquidityContract.target, ethers.parseEther("10")); + await appleContract.approve(liquidityContract.target, ethers.parseEther("10")); + console.log(await appleContract.balanceOf(owner.address)); + console.log(await cherryContract.balanceOf(owner.address)); + const pair = await liquidityContract.addLiquidity( + cherryContract.target, + appleContract.target, + ethers.parseEther("1.5"), + ethers.parseEther("1"), + ethers.parseEther(".9"), + ethers.parseEther("1.3") + ); + console.log(pair); + }); + // it("Should receive and store the funds to lock", async function () { + // const { lock, lockedAmount } = await loadFixture( + // deployOneYearLockFixture + // ); + + // expect(await ethers.provider.getBalance(lock.target)).to.equal( + // lockedAmount + // ); + // }); + + // it("Should fail if the unlockTime is not in the future", async function () { + // // We don't use the fixture here because we want a different deployment + // const latestTime = await time.latest(); + // const Lock = await ethers.getContractFactory("Lock"); + // await expect(Lock.deploy(latestTime, { value: 1 })).to.be.revertedWith( + // "Unlock time should be in the future" + // ); + // }); + // }); + + // describe("Withdrawals", function () { + // describe("Validations", function () { + // it("Should revert with the right error if called too soon", async function () { + // const { lock } = await loadFixture(deployOneYearLockFixture); + + // await expect(lock.withdraw()).to.be.revertedWith( + // "You can't withdraw yet" + // ); + // }); + + // it("Should revert with the right error if called from another account", async function () { + // const { lock, unlockTime, otherAccount } = await loadFixture( + // deployOneYearLockFixture + // ); + + // // We can increase the time in Hardhat Network + // await time.increaseTo(unlockTime); + + // // We use lock.connect() to send a transaction from another account + // await expect(lock.connect(otherAccount).withdraw()).to.be.revertedWith( + // "You aren't the owner" + // ); + // }); + + // it("Shouldn't fail if the unlockTime has arrived and the owner calls it", async function () { + // const { lock, unlockTime } = await loadFixture( + // deployOneYearLockFixture + // ); + + // // Transactions are sent using the first signer by default + // await time.increaseTo(unlockTime); + + // await expect(lock.withdraw()).not.to.be.reverted; + // }); + // }); + + // describe("Events", function () { + // it("Should emit an event on withdrawals", async function () { + // const { lock, unlockTime, lockedAmount } = await loadFixture( + // deployOneYearLockFixture + // ); + + // await time.increaseTo(unlockTime); + + // await expect(lock.withdraw()) + // .to.emit(lock, "Withdrawal") + // .withArgs(lockedAmount, anyValue); // We accept any value as `when` arg + // }); + // }); + + // describe("Transfers", function () { + // it("Should transfer the funds to the owner", async function () { + // const { lock, unlockTime, lockedAmount, owner } = await loadFixture( + // deployOneYearLockFixture + // ); + + // await time.increaseTo(unlockTime); + + // await expect(lock.withdraw()).to.changeEtherBalances( + // [owner, lock], + // [lockedAmount, -lockedAmount] + // ); + // }); + // }); + }); +}); From 1719c65e10c8677150586dd9498b7d3a4e255c74 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sat, 28 Dec 2024 10:48:16 +0100 Subject: [PATCH 02/11] core --- .../contracts/core/LiquidityProvider.sol | 35 ++++++++++--------- Core uniswap/contracts/core/Math.sol | 2 +- Core uniswap/contracts/core/Pool.sol | 12 +++---- .../core/interfaces/{IWedu.sol => IWCore.sol} | 2 +- .../contracts/core/libraries/Library.sol | 4 +-- .../core/wrapped-native-token/WCore.sol | 2 +- 6 files changed, 29 insertions(+), 28 deletions(-) rename Core uniswap/contracts/core/interfaces/{IWedu.sol => IWCore.sol} (91%) diff --git a/Core uniswap/contracts/core/LiquidityProvider.sol b/Core uniswap/contracts/core/LiquidityProvider.sol index 62a90cc1..72e9f6e4 100644 --- a/Core uniswap/contracts/core/LiquidityProvider.sol +++ b/Core uniswap/contracts/core/LiquidityProvider.sol @@ -5,20 +5,21 @@ pragma solidity ^0.8.9; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "./interfaces/IFactory.sol"; import "./interfaces/IPool.sol"; -import "./interfaces/IWedu.sol"; +import "./interfaces/IWCore.sol"; import "./libraries/Library.sol"; error LiquidityProvider__InsufficientAmount(); error LiquidityProvider__InsufficientOutputAmount(); -error LiquidityProvider__EDUTransferFailed(); +error LiquidityProvider__CoreTransferFailed(); +error LiquidityProvider__CoreTransferFailed(); contract LiquidityProvider { address private immutable factoryAddress; - address private immutable WEDU; + address private immutable WCORE; - constructor(address _factoryAddress, address _WEDU) { + constructor(address _factoryAddress, address _WCore) { factoryAddress = _factoryAddress; - WEDU = _WEDU; + WCore = _WCore; } function _addLiquidity( @@ -86,22 +87,22 @@ contract LiquidityProvider { liquidity = IPool(pair).mint(msg.sender); } - // function addLiquidityEdu( + // function addLiquidityCore( // address tokenA - // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) { - // (amountA, amountEDU) = _addLiquidity(); - // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU); + // ) external returns (uint256 amountA, uint256 amountCore, uint256 liquidity) { + // (amountA, amountCore) = _addLiquidity(); + // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WCore); // IERC20(tokenA).transferFrom(msg.sender, pair, amountA); - // IWEDU(WEDU).deposit{value: amountEDU}(); - // assert(IWEDU(WEDU).transfer(pair, amountEDU)); + // IWCore(WCore).deposit{value: amountCore}(); + // assert(IWCore(WCore).transfer(pair, amountCore)); // liquidity = IPool(pair).mint(msg.sender); - // if (msg.value > amountEDU) + // if (msg.value > amountCore) // (bool success, ) = msg.sender.call{value: value}(""); - // if (!success) revert LiquidityProvider__EDUTransferFailed(); + // if (!success) revert LiquidityProvider__CoreTransferFailed(); // } - // TODO: Remove liquidity & liquidityEdu + // TODO: Remove liquidity & liquidityCore // Swapppp @@ -149,10 +150,10 @@ contract LiquidityProvider { uint reserveA, uint reserveB ) internal pure returns (uint amountB) { - require(amountA > 0, "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT"); + require(amountA > 0, "insufficient input"); require( reserveA > 0 && reserveB > 0, - "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + "insufficient liquidity" ); amountB = (amountA * reserveB) / reserveA; } @@ -164,7 +165,7 @@ contract LiquidityProvider { uint amountIn, address[] memory path ) public view returns (uint[] memory amounts) { - require(path.length >= 2, "UniswapV2Library: INVALID_PATH"); + require(path.length >= 2, "invalid number of array"); amounts = new uint[](path.length); amounts[0] = amountIn; for (uint i; i < path.length - 1; i++) { diff --git a/Core uniswap/contracts/core/Math.sol b/Core uniswap/contracts/core/Math.sol index 7c349ccc..205d14cd 100644 --- a/Core uniswap/contracts/core/Math.sol +++ b/Core uniswap/contracts/core/Math.sol @@ -8,7 +8,7 @@ library Math { z = x < y ? x : y; } - // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) + // babylonian method function sqrt(uint y) internal pure returns (uint z) { if (y > 3) { z = y; diff --git a/Core uniswap/contracts/core/Pool.sol b/Core uniswap/contracts/core/Pool.sol index e9296bc5..b15a27c1 100644 --- a/Core uniswap/contracts/core/Pool.sol +++ b/Core uniswap/contracts/core/Pool.sol @@ -69,16 +69,16 @@ contract Pool is ERC20 { function liquidateLpTokens( address to ) external returns (uint256 amountA, uint256 amountB) { - (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings - address _tokenA = tokenA; // gas savings - address _tokenB = tokenB; // gas savings + (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); + address _tokenA = tokenA; + address _tokenB = tokenB; uint balanceA = IERC20(_tokenA).balanceOf(address(this)); uint balanceB = IERC20(_tokenB).balanceOf(address(this)); uint liquidity = balanceOf(to); - uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee - amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution - amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution + uint256 _totalSupply = totalSupply(); + amountA = (liquidity * balanceA) / _totalSupply; + amountB = (liquidity * balanceB) / _totalSupply; if (amountA <= 0 && amountB <= 0) revert PoolFactory__InsufficientLiquidity(); _burn(address(this), liquidity); diff --git a/Core uniswap/contracts/core/interfaces/IWedu.sol b/Core uniswap/contracts/core/interfaces/IWCore.sol similarity index 91% rename from Core uniswap/contracts/core/interfaces/IWedu.sol rename to Core uniswap/contracts/core/interfaces/IWCore.sol index fd557639..7be25597 100644 --- a/Core uniswap/contracts/core/interfaces/IWedu.sol +++ b/Core uniswap/contracts/core/interfaces/IWCore.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; -interface IWEDU { +interface IWCore { function deposit() external payable; function transfer(address to, uint value) external returns (bool); diff --git a/Core uniswap/contracts/core/libraries/Library.sol b/Core uniswap/contracts/core/libraries/Library.sol index a81b9196..30319dbf 100644 --- a/Core uniswap/contracts/core/libraries/Library.sol +++ b/Core uniswap/contracts/core/libraries/Library.sol @@ -25,10 +25,10 @@ library DefiLibrary { uint reserveIn, uint reserveOut ) internal pure returns (uint amountOut) { - require(amountIn > 0, "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT"); + require(amountIn > 0, "insufficient input"); require( reserveIn > 0 && reserveOut > 0, - "UniswapV2Library: INSUFFICIENT_LIQUIDITY" + "insufficient liquidity" ); uint amountInWithFee = amountIn * 997; uint numerator = amountInWithFee * reserveOut; diff --git a/Core uniswap/contracts/core/wrapped-native-token/WCore.sol b/Core uniswap/contracts/core/wrapped-native-token/WCore.sol index b178c244..c2e50b2e 100644 --- a/Core uniswap/contracts/core/wrapped-native-token/WCore.sol +++ b/Core uniswap/contracts/core/wrapped-native-token/WCore.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract WrappedCoreToken is ERC20 { - constructor() ERC20("WrappedEdu", "WEDU") {} + constructor() ERC20("WrappedCore", "WCORE") {} // function deposit(uint256 amount) public payable { // _mint(msg.sender, amount); From 765c6670f64e5cb7c9951154515da29181e8d349 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sat, 28 Dec 2024 11:08:45 +0100 Subject: [PATCH 03/11] core --- Core uniswap/README.md | 192 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 184 insertions(+), 8 deletions(-) diff --git a/Core uniswap/README.md b/Core uniswap/README.md index d04248da..52bfeb9c 100644 --- a/Core uniswap/README.md +++ b/Core uniswap/README.md @@ -1,13 +1,189 @@ -# Sample Hardhat Project +Here’s a tailored README file for your **Uniswap-on-Core** project: -This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, and a Hardhat Ignition module that deploys that contract. +--- -Try running some of the following tasks: +# Uniswap-on-Core -```shell -npx hardhat help +Welcome to **Uniswap-on-Core**, a decentralized exchange (DEX) platform built on the Core blockchain. This platform enables users to swap tokens seamlessly, create liquidity pools, add liquidity, and utilize a faucet to mint tokens for testing purposes. With a simple and intuitive interface, this project aims to bring DeFi functionalities to the Core ecosystem. + +## Features + +- **Token Swapping**: Swap one token for another effortlessly using liquidity pools. +- **Liquidity Pools**: Create liquidity pools to support token trading and earn rewards as a liquidity provider. +- **Add Liquidity**: Contribute to existing pools to improve liquidity and earn LP tokens. +- **Faucet**: Mint test tokens to interact with the platform on the Core blockchain TestNet. + +## Learning Takeaways + +This project demonstrates the following concepts: + +- Integrating MetaMask with a DEX platform on Core TestNet. +- Developing and deploying smart contracts to facilitate token swaps, liquidity pools, and minting. +- Building a React-based front-end to interact with smart contracts. +- Using Thirdweb framework for seamless communication with the blockchain. +- Understanding core principles of decentralized exchanges and automated market makers (AMMs). + +## Software Prerequisites + +Ensure you have the following installed: + +- [Git](https://git-scm.com/) v2.44.0 +- [Node.js](https://nodejs.org/en) v20.11.1 +- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) v10.2.4 +- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#installation) v2.22.7 +- [MetaMask Web Wallet Extension](https://metamask.io/download/) + +## Setting up the Development Environment + +1. Clone the repository: + + ```bash + git clone https://github.com/adamsdavee/Uniswap-on-Core.git + cd Uniswap-on-Core + ``` + +2. Install dependencies: + + ```bash + npm install + ``` + +3. Configure MetaMask to use the Core TestNet and ensure you have test tokens for interaction. Refer [here](https://docs.coredao.org/docs/Dev-Guide/core-testnet-wallet-config) for wallet configuration. + +4. Create a `.env` file in the root directory to store your private key securely: + + ``` + PrivateKey= your-private-key + ``` + + > **Note**: Add `.env` to `.gitignore` to avoid exposing sensitive information. + +## Smart Contracts Overview + +### Token Swap Contract + +Facilitates token swapping through an AMM mechanism. + +- **Functionality**: Swap tokens, calculate rates, and manage reserves. + +### Liquidity Pool Contract + +Allows users to create and contribute liquidity pools. + +- **Functionality**: Track liquidity shares, enable adding/removing liquidity, and distribute fees. + +### Faucet Contract + +Provides test tokens to users for interacting with the platform. + +- **Functionality**: Mint tokens with a fixed supply and limit per user request. + +## Front-End Integration + +The React-based front end is built to interact seamlessly with the deployed contracts. + +### Key Components + +1. **Token Swap Interface**: + - Swap tokens by specifying input amounts. + +2. **Liquidity Management**: + - Create new liquidity pools. + - Add or remove liquidity from existing pools. + - Track rewards and shares. + +3. **Faucet**: + - Request test tokens to begin interaction. + +### Running the Front-End + +1. Navigate to the `frontend` directory: + + ```bash + cd frontend + ``` + +2. Install dependencies: + + ```bash + npm install + ``` + +3. Start the development server: + + ```bash + npm run dev + ``` + +Access the application in your browser at `http://localhost:3000`. + +## Deploying the Smart Contracts + +1. Compile the contracts: + + ```bash + npx hardhat compile + ``` + +2. Deploy the contracts: + + ```bash + npx hardhat run scripts/deployTokens.js + npx hardhat run scripts/deploy_factory_.js + npx hardhat run scripts/deploy_liquidity.js + ``` + +3. Note the contract addresses from the deployment output for front-end integration. + +## Testing + +Run the Hardhat test suite to verify the functionality of the smart contracts: + +```bash npx hardhat test -REPORT_GAS=true npx hardhat test -npx hardhat node -npx hardhat ignition deploy ./ignition/modules/Lock.js ``` + +## Project Structure + +```bash +Uniswap-on-Core +│ README.md +│ hardhat.config.js +│ package.json +│ +├── contracts +│ └── (Smart contracts for swapping, liquidity pools, and faucet) +├── scripts +│ └── deploy.js +├── test +│ └── (Test files for smart contracts) +└── frontend + ├── app + │ ├── components + │ │ └── (React components for the front-end) + │ ├── page.tsx + │ │ + │ ├── layout.tsx + │ └── global.module.css + │ + ├── package.json + └── public +``` + +## Contribution + +Contributions are welcome! If you'd like to improve this project, please: + +1. Fork the repository. +2. Create a feature branch (`git checkout -b feature-name`). +3. Commit your changes (`git commit -m "Add feature"`). +4. Push the branch (`git push origin feature-name`). +5. Open a Pull Request. + +## License + +This project is open-source and available under the MIT License. + +--- + +Feel free to customize this further based on your preferences or the specific details of your project. \ No newline at end of file From 4d4b72cf66dc67d33a193ccec0afef37a9b93084 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sat, 11 Jan 2025 14:39:23 +0100 Subject: [PATCH 04/11] multisig --- Multi Sig Wallet/.gitignore | 17 + Multi Sig Wallet/README.md | 13 + Multi Sig Wallet/contracts/Lock.sol | 34 + Multi Sig Wallet/hardhat.config.js | 6 + Multi Sig Wallet/ignition/modules/Lock.js | 18 + Multi Sig Wallet/package-lock.json | 7769 +++++++++++++++++++++ Multi Sig Wallet/package.json | 15 + Multi Sig Wallet/test/Lock.js | 126 + 8 files changed, 7998 insertions(+) create mode 100644 Multi Sig Wallet/.gitignore create mode 100644 Multi Sig Wallet/README.md create mode 100644 Multi Sig Wallet/contracts/Lock.sol create mode 100644 Multi Sig Wallet/hardhat.config.js create mode 100644 Multi Sig Wallet/ignition/modules/Lock.js create mode 100644 Multi Sig Wallet/package-lock.json create mode 100644 Multi Sig Wallet/package.json create mode 100644 Multi Sig Wallet/test/Lock.js diff --git a/Multi Sig Wallet/.gitignore b/Multi Sig Wallet/.gitignore new file mode 100644 index 00000000..e8c12ff4 --- /dev/null +++ b/Multi Sig Wallet/.gitignore @@ -0,0 +1,17 @@ +node_modules +.env + +# Hardhat files +/cache +/artifacts + +# TypeChain files +/typechain +/typechain-types + +# solidity-coverage files +/coverage +/coverage.json + +# Hardhat Ignition default folder for deployments against a local node +ignition/deployments/chain-31337 diff --git a/Multi Sig Wallet/README.md b/Multi Sig Wallet/README.md new file mode 100644 index 00000000..d04248da --- /dev/null +++ b/Multi Sig Wallet/README.md @@ -0,0 +1,13 @@ +# Sample Hardhat Project + +This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, and a Hardhat Ignition module that deploys that contract. + +Try running some of the following tasks: + +```shell +npx hardhat help +npx hardhat test +REPORT_GAS=true npx hardhat test +npx hardhat node +npx hardhat ignition deploy ./ignition/modules/Lock.js +``` diff --git a/Multi Sig Wallet/contracts/Lock.sol b/Multi Sig Wallet/contracts/Lock.sol new file mode 100644 index 00000000..0c81557f --- /dev/null +++ b/Multi Sig Wallet/contracts/Lock.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.27; + +// Uncomment this line to use console.log +// import "hardhat/console.sol"; + +contract Lock { + uint public unlockTime; + address payable public owner; + + event Withdrawal(uint amount, uint when); + + constructor(uint _unlockTime) payable { + require( + block.timestamp < _unlockTime, + "Unlock time should be in the future" + ); + + unlockTime = _unlockTime; + owner = payable(msg.sender); + } + + function withdraw() public { + // Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal + // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); + + require(block.timestamp >= unlockTime, "You can't withdraw yet"); + require(msg.sender == owner, "You aren't the owner"); + + emit Withdrawal(address(this).balance, block.timestamp); + + owner.transfer(address(this).balance); + } +} diff --git a/Multi Sig Wallet/hardhat.config.js b/Multi Sig Wallet/hardhat.config.js new file mode 100644 index 00000000..2cbdac34 --- /dev/null +++ b/Multi Sig Wallet/hardhat.config.js @@ -0,0 +1,6 @@ +require("@nomicfoundation/hardhat-toolbox"); + +/** @type import('hardhat/config').HardhatUserConfig */ +module.exports = { + solidity: "0.8.27", +}; diff --git a/Multi Sig Wallet/ignition/modules/Lock.js b/Multi Sig Wallet/ignition/modules/Lock.js new file mode 100644 index 00000000..32c7cd41 --- /dev/null +++ b/Multi Sig Wallet/ignition/modules/Lock.js @@ -0,0 +1,18 @@ +// This setup uses Hardhat Ignition to manage smart contract deployments. +// Learn more about it at https://hardhat.org/ignition + +const { buildModule } = require("@nomicfoundation/hardhat-ignition/modules"); + +const JAN_1ST_2030 = 1893456000; +const ONE_GWEI = 1_000_000_000n; + +module.exports = buildModule("LockModule", (m) => { + const unlockTime = m.getParameter("unlockTime", JAN_1ST_2030); + const lockedAmount = m.getParameter("lockedAmount", ONE_GWEI); + + const lock = m.contract("Lock", [unlockTime], { + value: lockedAmount, + }); + + return { lock }; +}); diff --git a/Multi Sig Wallet/package-lock.json b/Multi Sig Wallet/package-lock.json new file mode 100644 index 00000000..1de753d9 --- /dev/null +++ b/Multi Sig Wallet/package-lock.json @@ -0,0 +1,7769 @@ +{ + "name": "reuse", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "reuse", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "hardhat": "^2.22.15" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/edr": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.4.tgz", + "integrity": "sha512-YgrSuT3yo5ZQkbvBGqQ7hG+RDvz3YygSkddg4tb1Z0Y6pLXFzwrcEwWaJCFAVeeZxdxGfCgGMUYgRVneK+WXkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.6.4", + "@nomicfoundation/edr-darwin-x64": "0.6.4", + "@nomicfoundation/edr-linux-arm64-gnu": "0.6.4", + "@nomicfoundation/edr-linux-arm64-musl": "0.6.4", + "@nomicfoundation/edr-linux-x64-gnu": "0.6.4", + "@nomicfoundation/edr-linux-x64-musl": "0.6.4", + "@nomicfoundation/edr-win32-x64-msvc": "0.6.4" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.4.tgz", + "integrity": "sha512-QNQErISLgssV9+qia8sIjRANqtbW8snSDvjspixT/kSQ5ZSGxxctTg7x72wPSrcu8+EBEveIe5uqENIp5GH8HQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.4.tgz", + "integrity": "sha512-cjVmREiwByyc9+oGfvAh49IAw+oVJHF9WWYRD+Tm/ZlSpnEVWxrGNBak2bd/JSYjn+mZE7gmWS4SMRi4nKaLUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.4.tgz", + "integrity": "sha512-96o9kRIVD6W5VkgKvUOGpWyUGInVQ5BRlME2Fa36YoNsRQMaKtmYJEU0ACosYES6ZTpYC8U5sjMulvPtVoEfOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.4.tgz", + "integrity": "sha512-+JVEW9e5plHrUfQlSgkEj/UONrIU6rADTEk+Yp9pbe+mzNkJdfJYhs5JYiLQRP4OjxH4QOrXI97bKU6FcEbt5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.4.tgz", + "integrity": "sha512-nzYWW+fO3EZItOeP4CrdMgDXfaGBIBkKg0Y/7ySpUxLqzut40O4Mb0/+quqLAFkacUSWMlFp8nsmypJfOH5zoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.4.tgz", + "integrity": "sha512-QFRoE9qSQ2boRrVeQ1HdzU+XN7NUgwZ1SIy5DQt4d7jCP+5qTNsq8LBNcqhRBOATgO63nsweNUhxX/Suj5r1Sw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.4.tgz", + "integrity": "sha512-2yopjelNkkCvIjUgBGhrn153IBPLwnsDeNiq6oA0WkeM8tGmQi4td+PGi9jAriUDAkc59Yoi2q9hYA6efiY7Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "dev": true, + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.8.tgz", + "integrity": "sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" + } + }, + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.8.tgz", + "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.7.tgz", + "integrity": "sha512-RFhGazR0/JqHxuuIxjjMmM+nWFqEvA7wcVqcX7vUqqmAIGuok4HhnWQH8aOvBaVguiXvvlFDJL0PIlxmkFgIUg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nomicfoundation/ignition-core": "^0.15.7", + "@nomicfoundation/ignition-ui": "^0.15.7", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "json5": "^2.2.3", + "prompts": "^2.4.2" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.7.tgz", + "integrity": "sha512-pUZWQeFNMwDe6F/yKIJsCo+87elk/M/Edjp6AnWWIBplRyPa13Nh63+yOqMSSd9Mx9lLuBaEGnYXoI2Uz2wYZA==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.4", + "@nomicfoundation/hardhat-ignition": "^0.15.7", + "@nomicfoundation/ignition-core": "^0.15.7", + "ethers": "^6.7.0", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.12.tgz", + "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", + "chai": "^4.2.0", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.3.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.11.tgz", + "integrity": "sha512-lGIo4dNjVQFdsiEgZp3KP6ntLiF7xJEJsbNHfSyIiFCyI0Yv0518ElsFtMC5uCuHEChiBBMrib9jWQvHHT+X3Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.7.tgz", + "integrity": "sha512-C4/0V/q2gNxKDt88cMr+Oxlf4NINQ7QgmJyciQ1/6UdCRUg+/Pgdgpd3vgGXQVTotq50Q/BU4ofNUAD/8HRqtg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.7.tgz", + "integrity": "sha512-pj2LmXylgbHOTNrkFqFrre/FAOjcwYl4VKIKVH/QMMBH/DatbiT8aC5n9o2fbLD8uwlPEesD+uXZuKCE71KFBg==", + "dev": true, + "peer": true + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz", + "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.2", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.2", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.2" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz", + "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz", + "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz", + "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz", + "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz", + "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz", + "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz", + "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" + } + }, + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typechain/hardhat/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@typechain/hardhat/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", + "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/mocha": { + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.9.tgz", + "integrity": "sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "license": "BSD-3-Clause OR MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", + "dev": true, + "license": "WTFPL", + "peer": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "dev": true, + "peer": true + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "peer": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", + "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "deprecated": "This library has been deprecated and usage is discouraged.", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethers": { + "version": "6.13.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz", + "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD", + "peer": true + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hardhat": { + "version": "2.22.15", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.15.tgz", + "integrity": "sha512-BpTGa9PE/sKAaHi4s/S1e9WGv63DR1m7Lzfd60C8gSEchDPfAJssVRSq0MZ2v2k76ig9m0kHAwVLf5teYwu/Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.6.4", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^4.0.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "json-stream-stringify": "^3.1.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.8.26", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json-stream-stringify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", + "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=7.10.1" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true, + "peer": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "peer": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true, + "license": "MIT" + }, + "node_modules/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.7", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/secp256k1/node_modules/elliptic": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solidity-coverage": { + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", + "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.18.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "dev": true, + "license": "WTFPL OR MIT", + "peer": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/web3-utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "dev": true, + "license": "LGPL-3.0", + "peer": true, + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Multi Sig Wallet/package.json b/Multi Sig Wallet/package.json new file mode 100644 index 00000000..4b7db28d --- /dev/null +++ b/Multi Sig Wallet/package.json @@ -0,0 +1,15 @@ +{ + "name": "reuse", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "description": "", + "devDependencies": { + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "hardhat": "^2.22.15" + } +} diff --git a/Multi Sig Wallet/test/Lock.js b/Multi Sig Wallet/test/Lock.js new file mode 100644 index 00000000..f0e6ba1b --- /dev/null +++ b/Multi Sig Wallet/test/Lock.js @@ -0,0 +1,126 @@ +const { + time, + loadFixture, +} = require("@nomicfoundation/hardhat-toolbox/network-helpers"); +const { anyValue } = require("@nomicfoundation/hardhat-chai-matchers/withArgs"); +const { expect } = require("chai"); + +describe("Lock", function () { + // We define a fixture to reuse the same setup in every test. + // We use loadFixture to run this setup once, snapshot that state, + // and reset Hardhat Network to that snapshot in every test. + async function deployOneYearLockFixture() { + const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60; + const ONE_GWEI = 1_000_000_000; + + const lockedAmount = ONE_GWEI; + const unlockTime = (await time.latest()) + ONE_YEAR_IN_SECS; + + // Contracts are deployed using the first signer/account by default + const [owner, otherAccount] = await ethers.getSigners(); + + const Lock = await ethers.getContractFactory("Lock"); + const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); + + return { lock, unlockTime, lockedAmount, owner, otherAccount }; + } + + describe("Deployment", function () { + it("Should set the right unlockTime", async function () { + const { lock, unlockTime } = await loadFixture(deployOneYearLockFixture); + + expect(await lock.unlockTime()).to.equal(unlockTime); + }); + + it("Should set the right owner", async function () { + const { lock, owner } = await loadFixture(deployOneYearLockFixture); + + expect(await lock.owner()).to.equal(owner.address); + }); + + it("Should receive and store the funds to lock", async function () { + const { lock, lockedAmount } = await loadFixture( + deployOneYearLockFixture + ); + + expect(await ethers.provider.getBalance(lock.target)).to.equal( + lockedAmount + ); + }); + + it("Should fail if the unlockTime is not in the future", async function () { + // We don't use the fixture here because we want a different deployment + const latestTime = await time.latest(); + const Lock = await ethers.getContractFactory("Lock"); + await expect(Lock.deploy(latestTime, { value: 1 })).to.be.revertedWith( + "Unlock time should be in the future" + ); + }); + }); + + describe("Withdrawals", function () { + describe("Validations", function () { + it("Should revert with the right error if called too soon", async function () { + const { lock } = await loadFixture(deployOneYearLockFixture); + + await expect(lock.withdraw()).to.be.revertedWith( + "You can't withdraw yet" + ); + }); + + it("Should revert with the right error if called from another account", async function () { + const { lock, unlockTime, otherAccount } = await loadFixture( + deployOneYearLockFixture + ); + + // We can increase the time in Hardhat Network + await time.increaseTo(unlockTime); + + // We use lock.connect() to send a transaction from another account + await expect(lock.connect(otherAccount).withdraw()).to.be.revertedWith( + "You aren't the owner" + ); + }); + + it("Shouldn't fail if the unlockTime has arrived and the owner calls it", async function () { + const { lock, unlockTime } = await loadFixture( + deployOneYearLockFixture + ); + + // Transactions are sent using the first signer by default + await time.increaseTo(unlockTime); + + await expect(lock.withdraw()).not.to.be.reverted; + }); + }); + + describe("Events", function () { + it("Should emit an event on withdrawals", async function () { + const { lock, unlockTime, lockedAmount } = await loadFixture( + deployOneYearLockFixture + ); + + await time.increaseTo(unlockTime); + + await expect(lock.withdraw()) + .to.emit(lock, "Withdrawal") + .withArgs(lockedAmount, anyValue); // We accept any value as `when` arg + }); + }); + + describe("Transfers", function () { + it("Should transfer the funds to the owner", async function () { + const { lock, unlockTime, lockedAmount, owner } = await loadFixture( + deployOneYearLockFixture + ); + + await time.increaseTo(unlockTime); + + await expect(lock.withdraw()).to.changeEtherBalances( + [owner, lock], + [lockedAmount, -lockedAmount] + ); + }); + }); + }); +}); From 356dff182b11f4f6637bac27283208ea90a65d41 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sat, 11 Jan 2025 14:50:38 +0100 Subject: [PATCH 05/11] multisig frontend --- Multi Sig Wallet/Frontend/.eslintrc.json | 3 + Multi Sig Wallet/Frontend/.gitignore | 40 + Multi Sig Wallet/Frontend/README.md | 36 + Multi Sig Wallet/Frontend/app/favicon.ico | Bin 0 -> 25931 bytes .../Frontend/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes .../Frontend/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes Multi Sig Wallet/Frontend/app/globals.css | 72 + Multi Sig Wallet/Frontend/app/layout.tsx | 35 + Multi Sig Wallet/Frontend/app/page.tsx | 101 + Multi Sig Wallet/Frontend/components.json | 21 + Multi Sig Wallet/Frontend/lib/utils.ts | 6 + Multi Sig Wallet/Frontend/next.config.ts | 7 + Multi Sig Wallet/Frontend/package-lock.json | 5678 +++++++++++++++++ Multi Sig Wallet/Frontend/package.json | 31 + Multi Sig Wallet/Frontend/postcss.config.mjs | 8 + Multi Sig Wallet/Frontend/public/file.svg | 1 + Multi Sig Wallet/Frontend/public/globe.svg | 1 + Multi Sig Wallet/Frontend/public/next.svg | 1 + Multi Sig Wallet/Frontend/public/vercel.svg | 1 + Multi Sig Wallet/Frontend/public/window.svg | 1 + Multi Sig Wallet/Frontend/tailwind.config.ts | 63 + Multi Sig Wallet/Frontend/tsconfig.json | 27 + 22 files changed, 6133 insertions(+) create mode 100644 Multi Sig Wallet/Frontend/.eslintrc.json create mode 100644 Multi Sig Wallet/Frontend/.gitignore create mode 100644 Multi Sig Wallet/Frontend/README.md create mode 100644 Multi Sig Wallet/Frontend/app/favicon.ico create mode 100644 Multi Sig Wallet/Frontend/app/fonts/GeistMonoVF.woff create mode 100644 Multi Sig Wallet/Frontend/app/fonts/GeistVF.woff create mode 100644 Multi Sig Wallet/Frontend/app/globals.css create mode 100644 Multi Sig Wallet/Frontend/app/layout.tsx create mode 100644 Multi Sig Wallet/Frontend/app/page.tsx create mode 100644 Multi Sig Wallet/Frontend/components.json create mode 100644 Multi Sig Wallet/Frontend/lib/utils.ts create mode 100644 Multi Sig Wallet/Frontend/next.config.ts create mode 100644 Multi Sig Wallet/Frontend/package-lock.json create mode 100644 Multi Sig Wallet/Frontend/package.json create mode 100644 Multi Sig Wallet/Frontend/postcss.config.mjs create mode 100644 Multi Sig Wallet/Frontend/public/file.svg create mode 100644 Multi Sig Wallet/Frontend/public/globe.svg create mode 100644 Multi Sig Wallet/Frontend/public/next.svg create mode 100644 Multi Sig Wallet/Frontend/public/vercel.svg create mode 100644 Multi Sig Wallet/Frontend/public/window.svg create mode 100644 Multi Sig Wallet/Frontend/tailwind.config.ts create mode 100644 Multi Sig Wallet/Frontend/tsconfig.json diff --git a/Multi Sig Wallet/Frontend/.eslintrc.json b/Multi Sig Wallet/Frontend/.eslintrc.json new file mode 100644 index 00000000..37224185 --- /dev/null +++ b/Multi Sig Wallet/Frontend/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/Multi Sig Wallet/Frontend/.gitignore b/Multi Sig Wallet/Frontend/.gitignore new file mode 100644 index 00000000..26b002aa --- /dev/null +++ b/Multi Sig Wallet/Frontend/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# env files (can opt-in for commiting if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/Multi Sig Wallet/Frontend/README.md b/Multi Sig Wallet/Frontend/README.md new file mode 100644 index 00000000..e215bc4c --- /dev/null +++ b/Multi Sig Wallet/Frontend/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/Multi Sig Wallet/Frontend/app/favicon.ico b/Multi Sig Wallet/Frontend/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/Multi Sig Wallet/Frontend/app/fonts/GeistMonoVF.woff b/Multi Sig Wallet/Frontend/app/fonts/GeistMonoVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..f2ae185cbfd16946a534d819e9eb03924abbcc49 GIT binary patch literal 67864 zcmZsCV{|6X^LDby#!fc2?QCp28{4*X$D569+qP}vj&0lKKhN*HAKy9W>N!=Xdb(?> zQB^(TCNCxi0tx~G0t$@@g8bk8lJvX$|6bxEqGBK*H_sp-KYBnwz$0Q}BT2;-%I=)X2ub{=04r2*}TK5D+LXt~5{t z)Bof^+#0@Rw7=mKi|m$bX6?Bh~_rVfN!~Z5D+lYZ~eMdYd=)1 z?To(VG`{%|MBi{mhZ2~!F#vq`Pec9x)g^>91o^TxurUDvvGDqSS9st3-kw(m@3Xga z`qtIzyIr_nARq+I@sH7;0MG(2NPTSa#jh!1f4cEF5Xll)bpZ(>cyI|Q1wleT1wA5Y zq9^hv^x;~(?2G$>(CTL2)#Ou-rP=XDW$spn8<%0TH%F=^X^(F62Vd@bY`Wi$j$33w zf!U^8o_B|x>{pW$eFZG}b7#|uFueKt$`e9j!wHNBGQX67&nfgl(Ae`3qE-E+yBSfA zEnJSA6p%}|+P9ZIYR{w}nfaKIlV@b3YYzcH!?WNXRvg|J( z((lq^WAE%Q7;oE?zDk~Nvg1Dr_0)KH8m&HF%^&8bI!=#YAGqIx$Yf2lH9S*;=c=b6 zUHi?R*$?Q;>HU4-#?hGJ&dj2jq>d3;_NN_TeipMG!(E+ou)RL-kMQv(W$b9+k# z*%bh8;4)9Je-Giu+XwdbyoaSGei^KG*(1D)5+h{Kfg<`v)nU>dj}RiD_+VvZgb7>9 z-Qb^cdc0k1VSIW!onbm2*_uY*_+r1qe${8^DzXxMnX@F#u>I3_n0j_0ih#p?wd+gPI5niQVbIIsk zkxy%JZZqLeb?p_DXdh1*9Z(O`Nm%TZ(zL`RA!dd+$VNO>qwecEt;dy5w%UK1@1exK zD~__{?4}pb@sGL5CjI=xAR7Jym_*l%fS~I(m>6873y~E7k;IfdA_0)|1$o9?h92Js zt4eu6$WMaSodkz#g|LB%Iw?^B?6x^A=arKjpBhhH6ZCbk2{;io5x)B3eh9R{KEOQX z9|&Q1T3-YGeF+9$doOBzU`TntM~LF~ON3aEZ|p9Y7+wF9qBi`6(hl}&)@-uZ`4zJl z>R`Cps(&x90dBZ~SLeCp?oa*PgM%P!bZaG*OS96bkBT*gF)q0a zxEd&4ZXnQHBuCrYm@m@ffPQTObP*2j+P z_?=gLxmGc32nceW5l5oy=+SB$=N%F^{g}lKR9(TljKIPHw)zVyZ?3ODUL^k;0CuW% z!;ErXcl6|m8OB+{5iYNEq}!Y@o<%r_^{5a($V)INcxkIcMA}Gd8LUShZK5U!u)=PR z6ZALS*{0F1Oxl?y$xE;JA+eyc6mW}LqFTZ3ZvVl#h*UFfj`$%JE0l8D!JRBYUlH!L zJ!uZs@&)nqNg9x8t`fZ?k4Ihgdv(Ogzr)|%{JQ|-g@#=7rCIq(Oo={zr!i7F_F!6; zqpKdMO={?6)e1SETQW+U?L?WPzQx9x#RrVu%xa5u$bDgLQrF-K4Iwd}9a=yS3(f1J z=&B1p=UwPU_#kfxrJ(YnDYZkc%{pp&sn{<~MdR_9^8y%u``RUJaJtY*yi=~R9ryu@ z9kzsKGwMLhZ1egl=e5m~k^Ft9pSfxI5B!$g1WaeqpO`4?C-3aj(gSm%1+@BdqpyAV z@X|;G-&|(jA;zG>T=$%}2gC%)gu@pTPQ)SpSw*2DuSrX((%PM=kQ&E@b=Ygy)l&#k zn6Q419734+(;{THjU2Uy9No0H4_jV1#6O)c>u@tbG6oWD;-8yHLnM^;;b@dWvle!?{40o`dO)$$EZ zM^@JN7b3@-+?UUO*P#gtLsy$!7gZcziDwAj59PsCAJm>m6r+l^X1z|%wu-jJhnQ&_ znPJwq9_*qBLoo*W`sPdYk10kPgf$aH@4qU~%&pFl2rZ0AHR*E-AvBR{F9QCehDa@z z95xXU{QZg|=zb2Pq36>@3je4inO+>S(`ht?)Z#zrHM(i>qE+>iU#!8v4QnWDruR08 zihT~ec3TRJh#llhgk(NqF04=VE8}61FWwvTi_}KWRnkIGbxQ)CAyBfBoVsTvRsR!v zeeHuptQ&5sDmg3vV_f9UtqYjdrR(_D^waATK``ZJjfZD5Kduvl1+l2-u6Qf=6Ombx z7Sq ztJ92oU^LD6n$?=8G?#FGx#fF$d!2WBTf$UGVa}#`S@X&5dFIq%K!1Ikjs!+ybc~8&;<*f2$gyb>j{=&y@=kHsC%Xl#WTojY!)xQxm z+xUe-8Of9gTp&DDOh{Yy9#6leUk5m&-h{G7M@bsLtAJZq1|X(5;ulY z-D2nY-`lAFFZza${swOYsV>&wyw;MiiXw9Ze4so}{Flt`IeJQ5b1l1!d)yG4v?WEO zO3yg9oy--%g}hya8*T);IAWhS&T>>KL9Je(WS#9P#!$_f6!1`7cfKj*+i>@*tP8Mjj|un5Z`YGD>MiCU!adPX zx#5sU8_)@)5fHgRLdp7k;l9Mr_8H3SOvpCBbBRGBQ`Wih*Xpj<)C6}E4SH?GeM1wt)HAM~N<~ejyt^Wpq0tmp z6X&e+wbKjOt@{1ng^s>(semrGFCQLXu|@O1tvtmYwuZ`$BSe{a-011Sk2a~(>MVE0 zpIQ7LpuG+o?lOHuw%e_kJ6yAoXCpu*QQeY%8SNh6?$89*3`>%=;EOJb+gtz&Kp|yv zfPV+nw`uTKbxE3vpT)v3C@L}V3(f*@_3N$Flc(8e<6F?hmPF|Dt%$W})5dMX(nql2 zOMy&yEWPokJ^l?odvVv&l(un4B`x0UHu6T8LraPoL*NltIUElZ5m!YVjcyZe{0Gtx zK{scl85IYuMO$EBG$tHHu0zc0wi&8rW3`d{VJC$oYNJ?m2MBStoGQ!4xQLHS_tBeI z4=tL^Lv>Bj^g79fzfCc?aTHu%Uvn6&+a@&*N~Rba)gbaLl?WBo%1^Pjx=t&|S^9nh zu(^m2A5XEp+ZN2L2#w^7IpLW%BW#F@6{50p0liwKYe!&NWu2F@oIV-5r<}*;+3|bP ze>zfTOAXqW760vNex|NG!Xz~@Wcd5UhOk&n5clNgylEGuS)lF7K$c{a+Hl#rx-2Ic zD(HhN(=Sa(v|zonLt6q9;>ZBVh6n__yB8Pn7WCY*KX8V+u(@n9e zOTe7&?}Fvh8wHRCgku@eEVodSv4NBH%wJEO4wEp#-}%%$wR$2D5JR|@$vRkRb7}iIhxv; zshP$6ckt<2KCd5K9#gwy%I*Ey>Fe20M_29Y=)g1AcBH#@^pXEtP30j`IbaZgR2{t^ z`r?E$A9Zdf@wct0$aRwJ=i9-^yxU77e+%zOG9j-MXBP)nekEiIFHfS>Ba|3w;D?|dL35fhFX>Fi zQcepJaiZvXu&=IsDUMoZIo?5N1`h|7?WDfbJmXcY~w_lg&|t|BlK!`YFCDcu*n(Sa{%c z4$vg-+drB`)#x8&q6x0pG5p+BKvfIu#O32<*&LF;z8q?zL`41|Yicx^Yq4jz6>WcO z4=~f8fF;F-A=fL28*f$mLyZ)0X>6z$biG4VuDpiV4z zY~_evrt9XZfAzEyT`LtOtA^qKGM{Tq8NMHGIOL>T;4vaiE@lH-C<@aOeh_^m?<&&h zdXSPA^^n-i>Uj{Z%Lb+6v5B_zD^V_GWE1OBNlHndI9YW5kD^Kk@cZ&Ia z6oRdBan^1xma-m6+`d|wRJR`V~A;L2zw&Yu_yoTtgzTrhi-xxFYK659imn;^%TR%3!4mYTU`we=`K-=!r$)M^U|fng0gd4 zY&D|@id)hQ6lZ6$q#}%snpqqb>@aUApp7;*W>0UoVkg(l}MYC6COXI29 zGc~J-gZ4vC{yy!bjlkXM?rF2de*R#dL=(PI9-L-quUxck&u`DmTQjI#p*2mPjNqc? z$X9XK{UtI;@pJUK?cwIxV;%;lTG0!%y5 zJpWhb11vK@d2I=!;)F5vM`ML)^6b)LCj<7zlFm7!F$_T_`hyDZ>MEBe@A%a+9RG#y z_*KevIxJ(rEBNzd_KBWC<+$;IWH5}W4eTN}TM#4*`n;PelIth54aC}8|KHL1Kd9hY zdg6C1@KJ_+m6OHmY-}EB_QYaDnd8)^Y#fTGC1QB3E&Rq&s{PIUL5DzjJG<4E+;x=! zz3?hDSALlK#YF2II?cmMlq^D)riLWp(`LjFJNTY&BkIxb04C*yZ)Vjb*8{OJ&U(p# z3cxi}BFmgL+V%Ew9*g|D_V>-jj>E&_kXF}@LX&k)UuVIb+!>`~SGXZrZd9yBFoeR5 zNrxA*){}5*BIRJ3GSAb5CW!RX5}9`W*v3|J4v;znteT1Jn6BmRxF0|>v+o2A%ix3E z_}aH+5hk}2B`>5kW}hg%W`rkIVN-e8*j3!A(mQ&IFKdo(2cn%(!rGGG-la2y4dz)d z;cU;$Z5l<(tUS+pPC9~e+Sl_5OnGT=${=;{P%TayUQ^o1bm#Qel@0Ea2wDFsgpR8p z%{42-o*aWIGVFESm@;QGB)am8yb0`j>EazkuEVoKMd!r}nWzO!rg#7+BuCQ?4|TZ^ z`|;e56wJl>(SLl!DEUo1dvlUaqZZ{;%CQg!oaJ?FFxAmVK6uv$_;SHB!^)t!xv-f_$Bs$C)MjJg|HA#qe9b`BSwl8 z2McXH6Uvn|ClJyKV8|OT-V{LIG1v~h>gQprzhfK(DrmFQ4M!VgO!ZS8o6D1p%RSmV z+Xf5C09vC7w0t%eXb8L=U(~wlP)tZ3TaN#j4{NWJFL7# zMeiEPfaIS?IHAdP9aH+sm5udxfk^i!o76N(KewVyMk&0@OpX6rwAKG}3?0IvE?(cPM;r3Az!_xLiYFY&)}Sl<19#fU0x zj-uZ}`Ey9BnVxqbj#D{R24|$jM(dNl2KH#FvbDSz*@x<{sy48Gz=(yRiYW`ofYMu+ zzdPsn^PhpxWX2v}!sahrD*o$$3k;XDHq|HQU^rDKHq%xw$IafF=^BmtY8T@#Z%YDW zAdx@ahu2vaLq%D&-me?D(}&)mEb|5m{{oc6#p!vRnXxnizHWv)adXiBb>q0*jdBJ~Zv<2B}4vZ{P z>E)ayXwPyT&!MqX{ao=#mpGCX5|61&)PEQKmppcZigqM*Xe+;DOlb?AQ8hZ8S0~w3)(nNAK)Iuc7rg zfIT}yB^fVpt`B3Pkl;fBY6u~2&%W5O{d;oadPW=tcE^D^C>VI_JPYukh@TfhQoWZeCJ5B$7I19W@q_TM0($TkNK3wl)QIl3|@|1RCuW$X^KSG)YgdJf$ zD&q2EfNK5$`W1XPc!pW_jn16RK(}y~T4kUY!;u`93tAJiu%lz7ol{&ur{Q zrA4yCFcU|gV0|>p_`D&ByZc`)DL+`Qqx8bmSv%J+qdQd*Y<;Klb{>?OW@XKPzqewj ztIkvI-K;Hlf@9cCVRdISFG4&ME?xbBnin*J=9sxZ+*CAN{PGnwwyeqzbU^u}JEz&U zujyQvjy%LMauULwp0$59k|Lxd4Icntq<^uQ3!iJ0*EJT#GqBhF5^zk{hkBT< zKNwtg4Y`s4lJ-1VzUy%1!)~>kypou8iu}HY$;B}2qhX>w`(0ya>5ndBmNHvwz@<@d z)_T3Arr!pCuZ?)(&jZ=LnXHsU&B)ifpJd12LpQF3x4*zCIMUlbov*YMkDIX`ZQ}#B zDEm7;2>6H|!x9eQMZTTQ#83yK07tV{aiGreb{XKo=?{!()DRH+$I-(B{q;fyyO2n) z-rGbBGoMjZLapRim!$3W&f}tbELYcO^N@9^$@oA{Fw|v>Jo^sP%|m`>OsVrmyd1`r z*_-ScUuU|lzR~%OHT$uyWNQuw)pj`yF@eLl^+;zNjqf~|6huSAAIGYnALff2fZP5> zz7ARH{>mIa^RkT@w4ZV!CXF(cDn9w9CcPN-d;=6xcKKM>?vd2tUshA!XM9hA9JplyPAlKHA3W}2f4;=EdS9$VRk zJd#7BDuS+qpm{NTo#0B*Oj{$Z2l2)5j>joob07T0UCp(y#jl_ioRJq7;CrcFZ;7+D ziT+n)gme?&`MZ8Q3URYd1 zUXO6*c;TeIhsi*l(c2?lau-s#yIh8Vm$bBPLkB24pwd6-v8=f_57U7s_X=;?ZMPX$=V+KD?D%h69Plxj z6s25MR;B`_3y$P%?|Wl%v9)a+)Xt1ovYG0-8ZEx;{wk%oGLr8D(F1mGIiIYKO7qIT zkyAXybQE{@&#($=@kZpE5&n7R;k?&LuC|WbUG$$?mLATHDk-iOwVbXY!1z4~OSn zL9Iql5xuH}kpF|{#T-2i$=3HA7g2YTKZSXE!U$;^53~)*>eS`jehs0aZ z?~}w>o$4HP*axMt=ZuDj#B+$8z;s<~`^+`;?9euOJhNPximpeOXZLVk`?)op?#1LI zsEJ(3NA-`GoL{a>z!{Z>a*D$!ZnSUCRhF+h1{YrQx-{HFin8WzZefO{l z8cNaM;e7wxPv4B1qdM6*FoUE$-f@ij7)Qn+%qi1X#m$C)|q*>heV z_F1E1;>jFo_X_SxU4z7K=dzD=a^~oL!C9SEV-!KD$#mnz60qM-#pJFWBjB{A91?@LxNGc9%0{4?@cU#Y7z;WB&(t+Ux8ij z{ywC~@RW4y=k@~>Rr8pTmb$u=7qLo2Vpes~6>g_ENtTY7^pVeIg!wVc`DUmbY|`3M z-R+tCPAunS>R|zng`6f_20?)pLm}bSq%ja@pW1*wXr=T!IW0oYP6_8+GG^?eKvEc| z0FC0qr5|LsL5JWpacSeAuHLx1qO#F6G*`!D4x6a;L#0WM=HD&Vnsp=Ye)1&&^=NgK z$R=p#49`^kf{*a{V%70)-|osKU4qK8u*Ee`n^}AVgiVqOGq`)`$~)h-UbZ_TpWn5) z4AU%KuIEO^Hr5rLcT?KcOFj<^6-E5p*F`RXe_*jNQ-<*{pcs{>ypy$kvv5&h_=hdL<+0wfo7i8Zr zN2QPM2zwaYFfOrCFU7(G*GymiiuOMUH#o1w-P5{_<`RmBx9=5gvCW1?z*U9M+@ATPF1Psy-Tq}n0&H9|(XuzmZW30{I#a|z_}fb*J@}$Os9qoBgJ+y# zL#8>}`N|}X{(N$J8f*=>O{m7)%z$pbzMS2$yb0xce}L`230Nn-UPkBNZy?Asat0>M==4pw7^P*~|GtzfgB9oEz zSk=B0wEed=|Ip)4I}(ZDBYlprm6N!l&1a{)JCR@4>nZ9els~Gu+`<5ezJ3A;{B3`Ck6-7#p ziFkA{?4$2BcHuw~sGfB+sGG>sgP(eW)M^H@39}u3uf^6HSPdw&q^1jxpusc>E1p9-Su?Z)!3+F+@GwHP~|a`e`o(nklU0c z$M)W3BB{3Wn$(JgntlTNAP(iL>=b;wqp`!xMfLpa7@%+oG3L2vFv0Yd{WYP^a(Nq8 z;2jw%*$3xNJbL7%aTo}j30ZXHpm9k0sVi_dl8xNyUxDA006-~CjL%1|Og^BvD;u`5 z8eUsPX>1Jry+fY`?0PYEo<6g2_UycjSnM=1^3)pT)`AiKgWBpcxjSg3%AirFd5eP* zjvhK=PEj=}3VEoUv38N5?p1FxcdB>$Mz7(sJzqFUM>lEr#N`oGvZQdU_A z`K|dEXc~4j2p{1d#j?jW&BI$yC00u2CH5F#XOFeDJdb_wrIAZDw(D<$uoFNSLNQjK zmiC)`+pCCs75<1NJK7S?oxlh4Tt%Ivo^LVH@gw3D4)|DOKg<>hv+aNnO=o?qd) zBGw!;7ZuIzay6nnEQm`!NKyMPw{nUUXT~md>GPvp*Ji(};@O*%38?IVxSFTwda8h& z9P2K-lj+LZ<%5qMIw`qxMMTPc z%1Ih+=0rkm9R@ptoN^AtL$sNVqokbv6{Nq1?bg%!*-vI88&j7m`-g2-c|Su|XmJBx z42Uub_~d!tp@Fbl(y`29x`NFGQrL6X@8ZCx;)-D4k4cR9IoeQM*@nMU9Mcy3(NVPh zf_5O8k#(#Tw=kX}S;sXT-GpXIvnQowOrmasb{$NgKNzM^`;cBQ=W!Z=VMcOmH1-K5 z^bm4kEA0rOiCv@0Apn-2k&-3;*9MhJ?#( z5?H^2k%5!&3qybCk7+d3658c9fRy__w>T(QRzEr z6APC_Hl-})SqZ!%4*dsbIVE1#BJPv13iV6|Xed34s`O*jDYmyxsWFar_w}g$gsP-F@R z<>#H5`3B+f=oWr9JZTL7Z{APZfW5v-+aMO7e%ivNM-W#S?|Fvcyr?2@iI$Su+QJ(8 zq)JjtA!jdwfSsSQtWg8*n1W0cSx?;@IDH_LVuf6GBSq35qz-=rbdpafaqtpmaJkD6 z)FU4N`0$>ky=urSXvZ>Z5+CCcp%Qe6L{{t03OeZ+ zRCbk>BIWW0M0}3H@E=v2SKJ_R*ZIq!pRh-^0N+(eDiOZF+6xCZvte(X-r1bgx@pkv zyuQ{9&YI}0FuXVNd!Ap~T&FwUkgPRr@D4#DMnvJm1tLU6;X~EEviiyPcadF~p;X(( zPfbc8;^*!TCu>?d3D>G!=ToM}c5s~~nAt0=*7w(iu|XXp80WJwG}1joDxbSx$aAHK z_4SS%_W_33*4oH7igJ$!EPp1HV0E_tW<^(9NXO>(=o@os$07H+%tEmGFeU>MmLY06 zM#|ETy5I{ZDk;tjza2(WL4xUo)ATh)MsAvybn+I26<_Ht)DH2oGS;c^iFp z4=e6_4}OiZpR&2uo*f!1=h32V;?$GJj0|3JHsw|;xTovqX6j}6C`D5HN!C5e+*J7P zKF^L%n<_W(?l+=cLx(%qs`;Bp2y!0pTKzjaegZo4s`ypoU3=-CzI7%Qc0MjP+hvIs zvb;zY9!)RL06PHqC)}A{LHB%6N+xzQphj`@&{1BeOL{q2x78AOd_f7I+j_IvX+|Vn z;q+Ntq*~#0;rD1E65XF4;rnv1(&|XIxp1t$ep72{*Id~ItSweukLcT7ZA-LpPVd|} zI|J&@lEL%J**H(TRG(7%nGS6)l#a|*#lfUcUj($QIM!Fu1yHlZf|t(B?*%dvjr||y zmQG$R(Djjf#x&R_;KPYt+psuo(YjfvRY^YCepUr0KHi`K5E}HpQ}UVqa+|mpE`Q|< zdhU+Q^%%w9`tGj9BKCBPd)P{E&^~Nr7WBf7rUWVMq8{5g_b0ORy#>P_8@k~pp8sm` zAK8t57^DN6D~ln!mx3!7?RnjSQCppf;A@p`!|uysB)zWt0wEJ~NP^3@9h=eFIzj}u zLin3oX0!Gg7N*gAUQ-kEVRUF2Fm*1dw5V-Uda}wp?rS*;JB*a%d<;*zOP(|x(?XuX zT@q#!3@qgxWi@Lnx@t<=W4YNd1RE{H-DO3K!}#f@QS$BNWln5GJmy1GJa}{u+9e|K zO1UT>v>KSj}% z1ang#sQMe>iK-&XnHp09x5iB-ZOc{map*+J5@myMGiwFnRd*g&rOsi|J!C!Hu((A; zk{)gS&m|={yS~CZCVsNh)&>Us*frV$UMqb^bB81yA;$E^JwPt9k4NS5IK(?4EDb^A?E^z_xMj%`kfHxeCO9B#{Q6c ztL=4VCp>ts_-;MHzD@d;1d8)z^Lxwb+b;Za^}>>?(vDJ)dJ=Iw`O6{ zuC-%5D~vgwyL>QxiSK1c-}xkG{zTaJqlTx)N2nHZ+MvhzFKM(L`;XO2D1AhuiWvQ`?uM(s(Phi{U1pa_;IqwzwsmyrO{H3KvRCl7LMSLGWoUjP z$oo{WpJ<}lz@>{WL$!+Q<{hhlP|KdeGe`AZPv;w?o=@B?_3SHT1GjI4PEScrQyH8r zPDPoV{+#wyfE@$V?tuKORJ!R*uK4H84tF{_%-is=TMLf8!&|N1cAt|vc$_3U9X+bX z21!M&@Pr@ry9YoEg2S&IWRFo~(+%E2_Xr~IJZC(CXIR#Lx_2+XtScM&FJ>bgXf0FA zPfTyb_3(SA*w5%HLA_6fMi3xkGmXe{AahG1?v7F4Ylte+sgNx8yGLE6p?5b;zPAG&fcXYZRYmHY~O|d)^ay%!^0=f^?4r>4fNSZd(zC^9ro6d;5Lq& zqu+6;__+p}fb*>b26D^6eI>l%CJ;+T`zM>Jr#}sMG7K%OC?p?w)hi5GGJ05ziOq|! z=x=f4L>vZjEx~HXe#at~R17>w2uJ$!_`)8{^Tc-jR#Hi?jt-prwCrGgGn#3hl24dm zldosg>kw^8#goKcCK=*+s7-U4()3lMoxjW=HnQ_wb_FGqw*!nN`=Q7pBfaSk?msx9 z4w(l2)N4*{gEFy=qg~fFvk7l)fU6LpQTCK@WSvf&0LmzTGANW1@7+QJ3`M+dc2Y8y zt^o_&Lq1iu@x#K_YX3BI(R#bD!1=5b(kTB~ViL`hpz<*}?a~GD5=9I1B{L1C4+Y!A zA*Ore{`=ZUFVl<2uCxSy(0t{=6&oGBQqKe^J}Y>^UK%$EpwlXMh~1Xy6&;h}VGTdcm4+@ESi z$Xo1_84wSsl~^tnvi^v)!MfQFLhjh3Ay~l%t5k;|Spz?SolNM9aJ`XJ+rE?UGs%Ydbo$nb(!mkD|0>$yf2HhWp#)nthTOk*s)IOEU_qIB_MT}8Gv7w z)1iert?Vlq6I<_FNO628gDnvW)ha~1@FnX@JdNItDGO=wkA{|iNP-4H!meaW;A3nZ z*tb~SNjVUMvsZWpGORQw2MXO#j{Y%0y?P5g{}7J&J*BzZp3L|uwdx2Ppq%3F1EY>m zSL{U_Z_W>0&M^inR~kA<-my?xX;qSE7eM-kG>l%7BZ5mn^}%`$CBimAz{c$w(a%;?K4-_vd|h6H=}23A>@E z$ziyCWpieAcE+IVDsiV5^Dr}g5^v|%)Zh~w;uiM{jvo@DzuB7vpcATzIOvzJMkSIt zf26$!EdeSgg|6AiJ*vvTq+1hol{BA7%CN4P83r2@Gmb4!U~TS%DJqALJ@oDxrw{KV zzl@mD$SYoAB;sNOy?`=l4vMHD0iO4wDUDY4$EN2L3ng@)bsU^EZv5b$e3}Ewmj0W$ zGwaO3)M%7dm31}_8(ODTfo&ke!rs{EF#%p+z)O;GFw6Md@=BFP<78(Gb92!|#_5rx zIUId2V7&}LdjT8rMnpf(pkPWuO)k0vo5X+!E55DR^6&6q%s$++q;!;_q-vC3F_M4b z=gR_=C%tuW@`w`aK_{OFYZ`E$WhRj}ezCN(+F`Cp%uP7I-D0kY+|3B={b0ULsgi_5 z^_7K3#>9=Tpy%USwd7)uDGU`1jt;-9T9Z{7(GHK-BjMzSDdaEJrJ|(e19O7=axuiqvckscp64zgVR@{C^ck&^ER#d^@CMPOP)^kX( zvBciKadokDb*w>}3Yf$hgPs?wM^iGo{D8!nZOmF2Geaz!Z#H=kbC?2R(AY92O@8hC zZ9aXT7k0mUsL4-RG!BAO_;t3iI`KBfbxhjQ7 zE;Ou=mhw^wP%bG5sCx1Od@mvWIIS9S82b`Uff+*eb1*tC3mbqwfsNDC!?`lWaoCHb zEK)M5$ysY9F~81=s$x)3YKNzS$}(n_LQY@mSHh2G@bP?taR4NfT+$7Ykzuh+ogQl4 z^q$$^2ZB&A;qB(Ki2`9a2%e%j&<3O{K<;2o>N&ClpX;R=mq;M2xa%OMq^EhT`Er{N zWso(m2D#g%AIvd5;EJt}y#Ue{Y1YEqk*mK`GzGvuApSw#%V1SO?o>+OpM3~a*G|(k zT1ek`jRH@W8PboCmKYhoNq&VNN*NI8s81-U1K1&KfAe2MYhbbY~k zNxeYxvAEWJ#@xYUxwn)%p2xJdw~Zd3)l^xq?ERE+_hq@5VtqNoo+hA`2E4xl4VA9j z<58n##BL}in6!*gpoQ+4W|_icS=XlN=T6gG`&D;0PE!9}oizRS9!o&0e?Q#uw54#z zi4Tl3c}EV2UkyJ11Ruk}HT5Q6lJO$AV58k?a322~4l@s*CRw9nS z>j%EC#ja3R5pUnuw#p0;V4zy%nR6WJo~H)`uAx;!0w7z5CeY{A2(anBn-I6syH*Qe z+%%=3LRx8zE+io$W`pUMC?~j4&VzK>*an#;@^^E>zeK3=XCK6;u9pp6rY22maPvLl z`z&ftU*4?Xpf%&s?A@LcY|-La|I2`^6(e%NX@~FT%g*;q+2P%?JK1yNOM=_W`azLU zv?5hzA00oO6k_rApf~mM&@J+%w_k<3yoLuQS9sH%GISt?oobE9yfUd;ke<2SPrHRU z)9$v_dU#qc?D&aG@9n(%3;oI@{x+*p0=M!i5?XU)S@t4yv&~}?oBj=#>FAI9K2yY- z)%@LA4Nx#dT-f~umG28ayK;YCt0Y1$5%6`7-2#SB3K=uJFp|GV1QAZRyEU>`Qmsm2 z&fx!s*q7P2Ek_1M)KZOXi|5bnf>I@&BAmD55@EIx$eQKCTM?btfx&8BHK1Y2tgkfg zyS>9(&d_G=g5Lh`^Y{U8iJ%Z8iCsK^^ZU<2R8>x1^Cr`Ow%}{^W(Z(Lj7!85c32TY zSX})fwa<3`c=nJ@deoQEe}^t}7q#v%Qp&EhbNX8QF73Kbicrl!e)MJSuLn*#9YzFu z8IBvPn#-rv%m_c2r5L1&?V**H_OCY3){>UhI{?5o6Luq^eaNy`VzVH=tgX*SB;p;u zXpnS9vfL>FBveRvCG8K(t|m@e#y7$8AMb7TcWJ2zpJ;ff+@j-f!M?Md{C%|N?EL=j zq7)69qnr9+(`pngdgxFb|JX~<$JFaqlwAK|H)JX!&f<+A_1usw1UbJSBjBiwDFS1_ zUkZhZB01EPAeBj6Q&t2-d1GpIg z@vmFNf-Rlrte~+O!ehclveAU*))^3)xrKm2m@J&(F;67BpYFIdOKWuVGqY{Y;MLAm zYKcgz?DQ2szyOTX8-XDED*~~Y{5Pqje)Et)n2h(MK=^TB?SfVW>iBMA8Gs|eflsc% zy5s4YhYtd8h6iG6H}m(qj67mc+Vu^I*V;qr{mlJKjJgS*2v)1uM35IpQL%v|{(kH< zrs}>E6Uz)#b}aH2qXRbloOwx15YCG^)Xa3Igeb4KE4j(JH#%3Mn*yF(Bh~$1wEiQ_ zWpkxeyVL?*Q=yBJ$P5>EPaglkjsEBeI0F12nCY>t(OUy4uOkDL4@POv{b!wJw7laU z4}L1ASUHdyqOUnWBZ?_3n;&Cgh%BWL^SK4*$SmGDhw(DQWT8WQJzlR2{i%4r?bz7# znv`Puo^{6X3QCWnH-1xDO^e6`LW3*!x(#}UQYb^$mg z`TrJUaUt75yl^1#r-{J4e^3cAl=I_Dr=>xwm7Lg7C%(`TwY*BG#QR26>le0+ zSjA8Kpk{_9Y|)SEY2B|2Lv-Cl3gV+L#6O}c!&g65jJ@HknlYmzUS$?;sa(dF{aIy7 z=>r`$X{U0m5?@2P!cXZRoH>HH8_3W`dWy13 zce1IF^&L7{DkW(g+eI$1shczxU?#d?dON16jK6flt~Chm`~GAYEV57P{@Oe;9+#Oq zkxXR@C13kLs=fg@v!H1=+1R!=wr$(CZQFJ>w!N`!jUP6r#mw2MMX{-)F_Sgh&vcW zKE{vkxb2N=1XV@_rK%6?*bjC>#k`8`QL88_Dn?4u*vZML5knoj56%U-t0O0_fTM<# z@yL|l)s7tseqKE@4)zPbaLr5&?X}E4Ot8k>PY-VRIH%*kl_$W7(DFrMJqW(|$e|aj z<}Z}X&QMT1GGoQQxSiMf=_!b*(=4>4l#EcTp$czycI(KP4|gOnGO6L0eDozy$`iq7 z+jF{tG>&vUUYR{Kr%9Lla1L*V;2bn1ARfY9ekHvww86i!>4)o}QIaNG6vxwoJBfN& zTG^klmW8FkoO~!yLKNX`W0QJT@pnWPD={ zkDz;wyAkm}F^IwL#dxW_h}LWVc2CV}$_(NXmvU=bO)ZX+l$cV81cR}n0(X4LGVJf3 z?*69|d6rTpKAe^X@(o*wwl|!et)4$unl%-wC0oil(%97D^_P6jz`wT8$Y8Eex`Ri$ zLXK0kqAI<$(RB^aT&In;aa{9*fb^QA#6{ZM3kUoC4I9VH@~zddNKFi2!)|z0EboNE z{ia6Q1z_Y(3Y3Ly7U?{jIitwcPB?I2KkD#~_R13bhc1oA>E=UoNp-Rm^(^Z$3)D+M zBP+9fE^}*E+e~z!_m$WpyYO%_fki#~;DgZnT)#X|4zIP3;zCXlDq<`sXKAaI$LZQ} zyyr@+j|I!~63a@fS&NEj95t-RdUCfMVvVfzMYuT2H}=XOX8I`FmUKz^F>cjo!0k5Q zF?s$VdCpZVq9&~-PfUFk=~ekfUT!72%3sepTk&V6s?>ZsA#WXBWxBkf%zOn9l{e+T zyM|jKz1s1FBgTbu558xvCcama)nrIOB8fOXl%v)5WK^JSqX?#fTc~k5;-d zh(_Pd@tFK?0~+T@Iz9|(X3b6@M??0LlC407cVDzsbbl6>4~eXM1-5VW>Ztk*qTzZ<=h~(g;x?UD>*TPzg327N_qACmOb5l z^@;AHAh=}YglwU6tAbT6ApgiV*B~yXi)m!wUxg2!t8E~ zmiQ;$RIsLL$|H!HI~>8zo}XYOF3N>af&yprcg!_FIHf<+vv$RD{(%0TM>ZN<9x@MX z2+xwNd+uQ|Y`tn8I*GHUX+xEXotm(v{vvG1!!eN7`0KCReg1}Gii3Coe_4@=a;|NC znt+p)%$|a-rLke|+O;%oij#`fw}RyKW|eu;J9Ht{%7%L9JTpnrS2LjFSNIGp#)`I0 zXh`y^GS%fTg$q!#{) zC3`wacCX0}bd!Jo(AKHbye4qa+h8gyvE}Kr|1G1cA8Jg2Nk+DBUvzl|ZyVEFx*kru zTI-lfYI+HKIaSrrZ6v0hvuMLKrJGX$8nje|F&>?Dary8wZ+8jGzV&@ zE-~nInmW6Ep9@1VT3YQjx0*UO=Ps1~wI5IAFxM6<(mK4WENak8@3mY5GSKD66sm2*H*yma)O0?)7Br`1`KeHi86a#yotkjM!s%JhTraYdP+lfcCj4mpTL=a>KSHmtd)aGkvevTSKC{ud zobS+D7KMna$Q}BYHAA6dU@!Rr7)jPv=4DQ`XJXcb#cPuWh78?MNtQ73`71@!K(xT&k9 zMuP)~u=%IFwfGP$jrR`N|4C|9B;RpmzZ1AJYJfm=ly&Tp;D9d` zy*NdJYGnPL4-YR)-|D`r4~Hs5yT^a#x69-*Ix^236v77`Zro|dn&`rsO>J*}k1mP# z;tG1o*fw^5fy}5-p{{6wZE^jWBv*Kbr~+`8Ah>6*${yA%l`d9v`15!BIw9BVfYaC9 z<~*1=*RymuE#tINYfUvTv2dlN_=Eup{6)VHL4SfV(M7W7&`sLY^C6ReR9Rv7=@7%i zgP(+ZRY1XeZqZhR+7uz|f=*)v?ZxTy&A-mIS}jp#8r>)z4ulp9oV;^==msMFeh9?u zUe`TC8bqEaKErcGH^cO11Nr{wFX`Wvq{3OaWr(X$!p-So4Aa9tO`<#mS}lg5go-}G z7qL_={ySe4y)Q@36h~%XPegs65PFSnrTVATTK8e5b4)yPlCx|=sfx<-P|9pNg3T7% zSK{mNqa%XXT~v+Xv2puxdwC?4`ln9%?ClYeXt~8m2~?qnLW3Pub;*sxU4>FJy48F-(=`E7>< zN~(g}>iSE|%k#1=;(wNx?MCj1CAHyk1B4v@j9CX0i%-9WKLkGfY5bk$gd)Ixi+r4d zb3YO1Sz_u0w`4&;oM++e9mWLCTiLZk`)Ol|#i{KF9(DA-NlJS6UX|Ut`=-Oi8NDV^ zkA3{f*A2gx)11?2#&w*QjYe^mxmT`#oF#FSD3jRV9oK-?R(R@_AoU@#6;UgLd2+2D z-KBSQ9etULXa8!;*1M!7`Q77ieY5#*?P|Mzu=^9$9@F3feϣ%UY8`RWp~V-U_7 zDSM&-@cv_g11tXxtR8hhSsvhbm}^TIbEA^ zez~Ise9A5xP83c_%z83NHI&u7X>Mt9`pnf9TVC8vDso9r$$%-f#fu6f@a*df)uo-Q_5os=ED| zcEe;FMSWSJ&ct}ag!R8s`bGUZ`f~{uR>BX_16UIZu3|HQ{An_9v zHp7)lLClDc62YY@VO}JkS_2kF)MYGEO;oHS%W;YuDSf29meyQ*kC&Q@D5Y()UirbQ zeT^&uH7^72nS2!YD|zY#+SZO~YV!l{p=s^XHa8fe1Wr{Ir~lt? z&T9&mFQ)1Obn6G9RBhN4O5^az)h8(>R7Z`?G=z2B6om`t%6fF1Lre{m0c~K~0 zXZ`%Asz;D)&nPl8w^z!q(xW3qYNIS&^j=w1)?4pd)hsHQJu%L&>=IUNSr-?V@a<#y zTe$XUE|?}yQS@G4Hzyq}NAYok$^v;@M3G?#N~=Lk0A7LKEyo$`IGn`T`3c+&xhE&g zGUdOb(GqsDl}c<$s___$V9iP|P`$KE66Ka)!2y>Q0W!(Z1+^C&IwAD7-&RKDm zn@lTqPUJ4whnly4U#AuBOX0`y@9}=T_iKqGj)SrPBvyHgUX8{~cQ&n$YZMhEYGih$;=(NLFnCA; zJ<{P6EViq3GdR@A0F*j71H;Z7rbk7w@|D5)fHG%I7z!A3i&zoOG}HN^4@2Y@zZPW8k#z-2^|-~Kx5rTa2PJ#IoVGbx9( zms$_6iSdGT;U0f^Fi(^HUqEObfHCxveHQQmm5N68!ya{NsbpQ!J&T!=K7H*BqwI3( z<(8F_S1t|R9X3GYtkqCkY%MCbUS*P0tD$w9$x6L;NSmOB={inXdS_%wItd~9g6P?q zbe5ls)xwWyqa@6o*JRjjFm*JXA3Z_f7BV2Q zr|8x;r2WS3q$)JNtkgct{V{eZW>(nSUAP3`gSGb@Ta068{O(62Mo>By3C4Fb0xq|f zF($svLG@T|?ZAQUbnm64rqnxjz@vnk*h&!BzyCpfWGxn*q%`b!2z>QlqgEDaj{z0qttc?)(Dp;3e z(yy(@YjF6%)!PGZ32TFI_{e0?Tr)><@Nh}%lMmyo%EZs_SFe3u*|%^JhjHJ1XGXjI z``I;gHSp+U(PI(CA?ZoqXG6&?-|KFNIGgKWj|g#lmAvsh#qaePKkb)vfkVD7B!sBr ztwrDIu9PhVp@t9Ota(3qIW!E{Stq+;x1M+(GR!qB3mdmJ6EZTkf_M>gnYyV*G~{HY z916Bf_&5)i%wxFAr?Wy1r!~*FqLp^99NyPZ-4ZHUy`0AUEz%0+bKT6;SlXPy5^Tn9 zit~>w<74c@=Of=s&C`mfeNxu7BhA8zZ8aUPGKDEyrHnjrw?v_#{)nzNg>MHveY_6& zIahSkcjLb>)xyrl4^6X;NEoPI)mVS-Scfz&*j>UtsLUHUf3vOFe{VM$n}31R)1_Fa z4wRr_VWG*Hdy0v*FC?d$Ny$k{ruxs|=UgZ|Sy?quvZB$JfE;70t4l^6I!Tg}>eg_Y zhK81qii(yP9MQjwa+ZXOmOLc=wpjZZ^%-&YDc@d%&LQkEUp2PM-s@%<^j>Wd*zN{m z`uIvD`cpvhgNaqh?8!Rgu94tEplL>Qwr-K^bDvl+D{FmgJ(tCsl2)sp@ zO8+Z6RqvHilF0dRCY(_2%LY>mq<5f&S<@pZhp;K@gL)OlJ+wIoR9s4riQb7G*E(lM zT`eb%v_6o2fW3}!gLQdyB7{*2rErWtZ}2<$YTTn(CQ5@*lC)YA5dw-p!l1x?Fy_?9 z3leg;vQHW-#<5G;K_a7kIS|F5x2qAw4Sjry?}hr}BzXo5(-a}1Nc2lv-Ux=7dw_`8 zr#XGH9?Vo})J2ws+jH0iX=yh&74q$+tx?E~Dm3uC#iso#%yxrgdwQ4sCaS#1Ba6qP@BDTTlWER; z_Nr?)h}&+X`Ml*kd?vj9KHR?7)+4QIjnxNdB$-4<7JHBLV%V%f75QVvg=?DA@P6oP z6|+Cm*j}NeBB0y|MVZI3d#*aVv3lH!Q7ug;bw0VX0C1mpTVDuBU-JlZ&L*CrEx~@g zvWYf!%l@HoTQc76+$Rpybh9IpMMRVsTga6ck4{C19$W_b-Af|r-k^#2-F(MyP}23< zJMWV1g}YafX{Z_Rw!3?-w2Q@oq1XAOMa^scf-SjkdSwG>qy_`I@4l?3=ytXtN6RU2 zRZ?CjbKpA1i}Nb`pyH@hS5vF0`s&TH$8A47t|iq@+0wI3nn-*7ob=)T!M(+ruye(< zEom9SCd#4heQ9Q{%npGh?2m^nPetWYjy9zv4ia)CrBY?wNlG2o zo#y=B+)MHX17`SlMY?qZw;;hMoH1JbxC*NXfq=*3fcaLt)%B_ci+Z)ctA0~lZj7Ga z6vPCw82$QeeH~s2j~}m&FVF^B5Z#nSEA;WOmT~aU%`JChOSD#3x0<`7!@a5b^5klL zE{Z37&-828$DM=l8@bj!a;JCkT=(qSYNG~mYkT=r@32~Pp9^&Xo0jSK~pHT?6)f?A*>9E846baRamXh?Tkxg^BjK7qxaHX5Y=?%)&BTXb5Z*`A0_YR#@MG~i$G&mDiVqBUEQmb~ zT-b4iN)tcawMQpfkx7NKEy1{U4Vn; zOn`N`SltDeICuwP!4I|f=KE&G=pA?A`qlH(c;DggP=Hm>jkJD-jK*C)#5xi`pESX`hO z)^AT71c;{_!-jQ+x%G$xqtk23#8vBfe!c#pI5j)(Ml$E{L-uq#7#P3Dj=X_A4S*3H znBlL^`de1}*(c$r2C$6jPAg-6!zeYxwbp@XvS>GY%obNhzgT{!V7`!tha) z-OVAEZ3n1vj2wN3s5_q~K0zKsWlI+qA)%XFSW#i>btv)AF5|UYK=>9Y<6WAGKhDm9 z>~TM~Vs#Y8lnF4USHyMiR4{8lyM^>Z)dfszO%?SH*J5wT-p#cJ8(>q7#3GzJM3d!F z)-Za@re5UMqQu?&n9LL_mJ&?!G}p(vhkYsK$*YuiBRNhjbc7<@KedR3oRvOw-kVSZ zvNJxHu<3gx+=T^c628Kyo3L^%6*UVHBMCbNS2_Jlr-!(Ngw;HidJPwcpmr&Bl;U59 zAB?_`@FD&}7<>qFe0pDef`=aa3O_%Rh`BLksk z1{srtza=8k86*=_O@dPgt9HG}|0hh)8OxMT0bAv-7S4Fb0 zkDTdD6%FGH%Ue}4h>u*^j8xB_GrG5#lle?4ZT|>P~W#{+!GHsZ*!l_U6YuunTFV9Vtqf-CEsVDxn`5_ zegWYFLHw{L|BwU&fdGMe0K@i!pl&e$0rj!O=1jNPZnS(7m~FJ!;{0j+xwhQ_1~U3a z05a}_tpl|I+UO&6fZzNz(^vM}Pl59UBL=z@EIP=wKXq5@hQb5vVDO@jfd;{P@VE}| z0xY~=(gD8rGvaO%D4&jJXmxC?gP==rw>UIMnZNf={z4-^_zT*Ix}^-jB!2k zsR-f(%PW|#fZ&86H7muGRa1F6?9pIhm8d1o)(~P9%PpAKkYJU7&co?v^T_d|XN>#) z!3%Ovp#4Gk3#VVSKe7Ntf`SREr>Nwd-~$rz5UQg@HcIOd^R48sza~N%YRAc*PdML#BJHU% zJ4#DV4c^j`%%U_6meXa;{077Xkq-yUny?@_RH-3I0cN|8tC7J-Yl^_$Rx=_&M=_pvWW=AIentRL+haM^^M| z!TJ`luzS(QKo?tikn2H_8}V;H#ebuMG_;kI2~LHZbhVRt6=mpZSrx`hmuKFx z3p~}OY^Pl#R_&`Tvz(4^{RvRshVqw-X{)yH9 zEB6-L=j}?Bvia1BBkGmEU6oSnRJ0X5#9WAJ5!^$}`yjW`GO}i*_erGV6U72-gx>Mg zW9BMOQH5LzgXPRFBi|ThsvX!{k@({FMf7vMm_e4Kum+_J(dn)Lx?}A7A200KY_cH& zZ?wkfPkq{|_yzY9Mp{DUScVS29VmOGc7M+9)y?>8m5*ZX!DrXh%3k;_&I`f^Jz;aa zG6fxC5KR*@I8v{~$+WUL|Ow zdm)QEgfm<=jDTes8x>}^Dn@G@!Z^BWn9Ycf*$dbtGkju9OVo@ zN9JtXndsN)ukmMZ%1Mg5TXE=SLrr7d` zicE-1gCh69WSS7B=|11x~CP`}>r@j8`xaL>{FyB{^fQ6J{djI=f^&&_Ni6`plZ3X^D3zfCZpN`I&8SBNX_9q)=j-Lf8 zYj3Tk$k~Cdm-m&_^Hkc^D`A`*;amMNkFK47Q+u?<4Y#Q_%qirCD5S5q7wGWybg1UW z$zq7iLKXIoVfZFiSM=*s=+hIaizoRvD#CpOAc7%+GWDghfOQ{tkn;%--4Rdsk7xQ1 zgN;yU_w@wG?XGduS}l@sWdStsu_z{6;wpta-!bKJ1NAzhaD3S(Z8t)%dEs)kE+ZJX zn8YzdzDArt7?Kv}*9<8pI<*d*u?4C%O?XObZYL18(V7*eHk@GU(b-JnjL1;83=vDO zb;;T{Zg#laRQT$Wg#f8g5vXrExuj*tA6dXNu?im;@qC!!En^%oGk<^`Y5@}S?vGnV zm-(nUVZCeBf=!wptO)3Hfz9gv<&t@Q067A9>=;Xr601f*wx}hVjrJs18=Pv$yWBLbvBXw>nybvCzqLC zIvrQL3rJLYh8-HK9rX@x*;aZ$M_Xqe$PWEobiHM zan!Ew`Cb1ABg@_`z-Ti_x(?)N#Fhiceb94=| zCK|AfQTYM6Amb+3f%HP z^V4u0z!4aj5*Yk9nldObupdW=d4v&@(TVAIU?{B2Hx}l~SJ>@fP_{27JOjnY%M8y! zFSIc9J%$(=7`=%Z6NZr7BHnsLv&+2%b>kD-&{MgM;U5Wu%_=ludGG0P;EwJW zw(-;ih3{K>ko83AOA0DgEede`#!H=+2LCmb%YhpN|7{bPt;+fcyrUuMIsZgGWq{iXfqPthbyUu9!)+ zJU47kLMuMCbn6s|E6}bu>(tIG0N>CJ@Q1Pr-g*MPj?{*DqyMSS{34WyvLz~O|1T(2 zL!vZgEsOg4iI8i%i@K`0YFUfAzVi_26`4t4@Yc>Z|G;(e@^zj z$RazYfEor}cw|BSH0p1sR9{H z5rKppn$OY{68FPYH>jflNo`1d5gH7I{M`SGey=+||IUHXQR9o|yI5~A4_rC(H ziNr(c;DY1}bfi`lQWhNvTivA%hIb~>UV>O*vs~WqJra`4%34)gQ6uu5Nrd}@kHYv9 zYLbh=uF#=k5vVROQ>1en6Dca%))vuV#c!4zxpn!=w5MsUA#AfLGdLllZ>os0SP!nK zGUf>;|Jv{1!@HI8m)2JoqbVhd({sx;Gc2P>wrloU#1#(d{Nas#BgdxI^s9)uBt)ia zj2)`u`D3HwLNo5h=+lDJ($hi5Jsnrb*)+;tiWerf?GSdd)}TI|C^nUe1fMU zzfJl#(}0yS{m1j&l~1x4VgC#H{ygyC0zhBjy>E89|ET$zUp;$Yo_wD9rnt914vO=h z8n1c%Fg^%@8mg8@?$*t??Ha4AQyTA5H{7(vs4cN*@=O~5Pf3@p1hkz~1CXK?M93+i zBqXGkV^Z)=$^k*BWke}|h2YK>LY`dmskcsyQ)qfsTllME$jy-N(`S^_8bYftjv&7F z8Ads#u;?7ay*K~W7YjgFIz&}bM46)5{8eq*q3tkjjBQz9Tcgu9bLK6WQr5IK^k4On zw~f9~hp|WEiNtH`~g%s2WN=~vDAXev}Q)o5k(7`1|7#$y#ymJcr$Sy=QryTHvc8)XBDW+kk z7<8p_$g1GU=lWAVB5ZXR!o^d@Hd8*Vj7zic{OJUL zu*i!8;e3v#P+SpiNyT4P&D~X5{!z)^RZ;y>(YILzB1IicRfSYl*>y?Dc1clpNtwD? zO}kl#_f7G8LH@1RZ&~28Q1DGP z_%SQ&3;}K-54)z9MF>J-+OC5F84oRYI!c0vZBCl;q&j^Wkf}{e+uYhFxOy23Vecw%=fq6_;Z3X&;HZgK zY1LfSvQ(F;Hgl%UT50E6Rl`~r2CLAOW?%M7?g1<_MXExofEv2@z5Tuk=I$PiN@D0s zTfCdy!%fImrCanX!RW^jE3Df(1~OM1xT6oZVBbYRj>#wnO{ zo|+`GnVs#`F*RnXWG6Z8b!I=lCcmBJoZChJkMC7wns_p2^7XI{r#*n@IYX~B!#ogR zOlT6gAq5M*#~BrBdd$~P&FmZsKbSZ$9_t8WL_@A>Qcm7P$w6x)?9-(MdAPLd(0*S zkhr0RX15y8;h<;k5lrB8dc^NR2846F>eFVcY9@g1?Jm-l7o+-I%+nqdHoCs0&}=s> z?DXGMD8-uGUnTkbO@FbvT41f|(#}Dn%xFV@>_!_`*p-PNbJ^_Xbw3qD_K;Re=fS)R z_e4U~4iu!8cSHqGU%!EHfL|Ah)B%6n&xq7MGiakN!FG0??PMfDzD^s^sOFsEtIMRE zV4H;eA_%N{(s|;J;^}xkIn1gRm0tQ`$=y&bOnhe^l(^;DZ7OeOtq@yoX#4$;G^O)LQ=g=q(@lq)b>A*=H@mxy1J=1&$=^A?lTO_)l#39YQ>8=k^ zm~&c`E@4bOQGyNNKrF$Sh~dLLVPP!6y3BDP`#UzA>@I>0Kg*Lx_+7KT=$om;f_*0EcZg?l*n zX>l~XdwUjs2d6Y6=?ALU)`6ast-`jVSY9kFg9XYb+lEo4ZL)Gd#>Qpc0$t~2!Mxsk z`973z41*Q_AUwwj;u1XfJ_T!B`yZ`m@4jH3vN$gU&sE|W&*UA@enDVCMIfO5ttcQw z&|P3YpnxpMnl}zXU;{F-NNCjwaP91JN3!W8P{|Fqi^PV}lvZB|k>XffE+?6=4wOt# zY`Gjx_q{|KPW76tHd6V(PHws@UWJFTyx$&u6~BKZ*yj9=WAYzBXuaq1j1{F~C0{Yg zj8?1Ja-~2y&5qaW@s!yPPg6dU^&Md0iW0NX@4opoq*35$~QV9DpFcPN^){+Vw{?Sin6l2 z;`R3Y`llrVF`z%-BU{$GM$u10*rtbz-d6PzU(k^$lxu`asFti2E0k*mi^!(5nxy{k z_m&Ga!ew+@UJqvr_I>$;gJLn*%yt9ClnZ8nOlJH3LefdKDy>Gl!BX0vo>_0a?kgZ3 zmCNRGz8WZ@Ub#IYOH7DzF(JZf9}_2xQgk|>?uPi2%j11}7M|z#dikgK%k%zfu(N6Jwh{(y%8})eFDrzrt0CJ69iK=NHI;V{+r*cDa#0yxXyC{;s zFG9~p?Vdi!(Ed|s<}7A&NPp|sTKDv6ulf{>4cEK3Nea!4X#6K&^4C>tYAW5>>j|6vzAEsWdBL!Irzul32428BP6n;xBh z-j5>ZCV&jv%pUen`nCs)oih!Iea(RjX-G;F~W5+~{MJX+Mq8nHs{#5OWyQbLN!9dgwk7DS!-P&l$( zq@ZmKP;a=}sQjW?tVMRtAe_q)pRVBZN#jX%IA5@$KkkyBUc^C85(;0Rzm7!q*n_PNR$*tPzlZz;(il~CDJR%oms*gR}8Ky_i&nk8k@OHEOulB zF$!Zc2i>M%cUvJmYW2NHG4xn7^qe!u?FJisln=BiFwjvkz{6mQ`bo#pLW(8AtY+i6 z>Xf^LNaije4=*VZ!HY(oVW$XD7tJHSZc_oLiD!TtuK$+72{{d}JNpg54Y3Sn@I@>| z7?==DXM+s>{rzCWMV)xs@}nmZDsUx#C&Eq88WLS(Lbev4rj~YIW^lbEAK_?L|H4=K z{-HZNu@wPE4dqrnZAchZ;H&C_6wY)&+3v!7#}76D{dNyi^cqbnBIUD8y&jeR;F;bT zeSP*Q`@*{(dOtY#Hq7?^nEy7e1E=MBm^WZODTc!=VYDcbO|Lf?CY#FVhR<$ukT#z! z6sDgl1Q7$I*BPXkEr4*dSyHjZU>0Y&48(wSy1=xu$d#IB0pNqHpt5Y>(=NdA$ZVW2 zIiq#pVdzfbv|LV1hpZBwfQw?ls~@14(W{u`I_83}I2`r|XoCf#;k#p^;V~JF2ZB^b zWDzb_O{!KIjN%RFf8M-cqS<8P%HVO!;1$zkc3b1ITch;?tRAg8skQT{ZH8B7)wUAY z<<7Tyz1$^EXMUKhzK>_4n9*p|8;%B|tRxw-X2AaZp3z_^M3ZmPP;avOfB|#ckB!%H z>d7xlkv=VT66ONLL&d{pDuI+h>aTn+^}hNqE~j)|f62w=t4V#&)YE+M!8NOqLt$R;ed=V(&BdkE+%zUu*e2|WOh&KbEFp<3FTBOjQ zCpX;rFkblx;J@$8M-1M(cA}hQ+oFdr2vvvvjOq^JUy|!C_^jNZ z71pFMm#kwXB&{YK?nzgO96d9 znhQcPoU>(ZsU(eentx@bDCGuT&~ncF&15hH;w#sAbmyXRO-5db`(!MXOwUn++L-sL zxa_%NS~TC4T(y=t}1I*7Xv9 z7HY}b#P->8Q3sw@DLwUXot%8iEJC+bHB)e$ueT{=RBxgsh!Ob1p-)8jX68vxZHk!y zLf041kwvK$7B2k5Ns!v$)wQ!QDg3RnX4M;vnoaR{tG^(mxG9fQfk!E^VlCI8uPRy( zF%A9%*_@DrSPa}Ei0wqDv_9Fh3rUIPxnYRmi&JmWFXZJPg+7+Lz4Pw009IOU<6aLU zA3%EYo{PW?5@n&-P(|^|=TX-iO$jpn9zj-{qvKo*e@zpr7kCTY*8#X!lI8gKzAQuw zn73cW^i7z18lQjuDA0ra;*qr0Wn$73v?y;sMh?S~tTH&U11gX|SPE6!~{hmrgr)BMD-fX)gy|Gn%k>5a_ z*t3=Y^$SP=^}vFLKp=bc{6EoT%sv6HdZr~*B`b7BKmo`@CKr-2MUDwnSk{mSmw7*<{BVX1;{23V3J@E)J+B; zfrGG>;+&tTR(09`qC~bEPfx(Vf&9gQ>iRjzUqEo+zfcg0!7~Kp6kt_;u?jNJLOnnX z_JKzjDr!J22Td86a{$$Zdw;!PX`&L82zx4Gslc&{>dpeO;BO6Ms*f}~!fc`;3?1Cq zd}Is}b4n;G1+$RmNboad%8*Nsfj8vvkX%#bLs@8LCZ(1wSsJhB#uaUxh^Z89M*$YGX3rW5heNEJ#Q4xS9Jru^T zhao>?eJc!&rAn53YC@-}lbQr~2+65Rmw0|i=c(+cqM?ZZmHJsvN6I&ngqE zTDHjgsL{O=>f))Z%f5`~qR%TMza0G_)-6x4g7F~xDbc&E56jeZYV($5XjYYBiJpFB z*0^RbmnEH`l^~ixo`Asj5KFKif7W`_`66zsv@zh;I(T8yIabs9eqrf7+0#U?3%jxa z=ZdnW^HYx06(X2M@Y6u7j%5`y8_o_~KKKtIv?wO43~DKibExZJ>Yjb-F7Sli@1G*d zw&dR9R4*}#|M4)`2!4W*{|Q2Bd#9gHP93H?X0>T=I$tqAN3*~7e{lI>_{a1P?SK%@ zA~u2X_5(5C#{637LvtW4bpm{(y9*H(v@+;m(gV=HqAZ61L};#aC}oilL-Gtz03ak9 z80!J>I=Bnq@IFQdaGhW5eU~?|A3)#vixeox3U-U2t^&TZkSxGcg4(mdF1Wg8_66o` zh;-rBduDAYSCQfS^&Vt;0V})LBv|7jkaH4liGPxbmL!Ph<7CKS#;~90JSBVP50lHF zn=S0LvegRUES%Tl+)6-BA-Mvl6A~po*RC!gEeo4;)~S8t`Nkp-V;X4Xlh`NdQ$(b^ zNVNx$p}46&lff=jkBTzInwONU^j&k_h~k-NQ?>{IeMBv44sJJM5>QKU)lk-ZQG0ZI zb9=TI%{O@xxgn&)3q;Yx(M1_Wu7x>;pM^<8&)oWL8a!)x4%M7tvV&cZRj>7$DdG6P2@M$3P z(#9RnWAOd6ntyJt5FIF6X}MQR_wa9Bd7}jT{14xssGw* z>)y%#3i3ym=ixe&HP2QaRy2PdC4_y>UP|=wmL)Q^&cZU$GoSLVW^otPR;K5XI&$9@ z-#Xsj!x%^EZs+qd8?vY}&eGX3r!%56HZsLCb~H3xWu?U@K_|H;v8=VMEve0OfJuXy zghLCQ;_-v>85TjX3-LiNLzD+g3}K%Jn)i+!$lEZwe$q8mRI?H==MgdjY((RJtIr-< zm^J;@f|t!-n040xr(st^u8bp0$H57s?Q=T_y*>7z_krbu&=0;Ik>6{*6&Il*B36tF zfTZt7k&W;>Qyfw;0Tg|Ezw*AGCo|77xX z-nUzOM|o>`ZhL3FV&;i|j_oY+Qz(!z5Z+`yHrTF#U4XkGct>>)_CT8j5!vsX-_r{>3oi&E3=R+a4onVk4~!0^5rYw{5=~1~ORS8&j7^MvQJ`NU z<00puOky^U5Y?B~8`gu}syOQU)bFC7LD7aH4VV}fIp}$i9%Crhx3tOdQ1K;9NDG{i z#46DzJ&j`>?mL-gq<%W-wrBC^=@Am7o^u zYgKPb1%x1`o4|6^yYu{HnK`XzJ8%2$+;k9Bi#<;-9Cy8U(Pu4e`X5|N_P}EX$1)lq zYX15OC23VJo^2~5uLhH@xqn=z`Gl5u4>bIoY zLzfH=cnChWD9kcg5I)bL=|ZU@c`bn4eq}p!DCrZ5y|e|2YXmOiT#ck7Ii^Xmqu;JJI6baux0aV7kP#z8%m3JV z{6#mQfD{F_WYw;tCf~T$RcZ-K{U9SJ=XG<(bd;N!>6Dt9#z{)Y09&CdL78@N6|QY6 zl~^2(kVJ)%n~@<&ma-}a2NSgGh8YIK_c}lFG#HN1x@4drJCJ6=h)FZRz%!~v8!>Oq z%KAh6$^D>0#makW-V{7MEZX~xo75Z1&=HIXy@AV+Iw-a$P#E+V^IxwOu>WA z&N->3J?mU=3 zPv(kPphJ%>;;7R$(C0I!0vS|>>eGorms0mg0Zgq=zwRT@?E0j$OwohG7ph(FYnQ7j zX~X`qrhS=JdTnc6t!i=ESG(BozUw~leopvqltk)E#>Yk0Hl$q(oIgW72Mt@Jl-b3- zS6O(k(Q)CaRcKMAxJ;jQKJ`D$7sY0(IvS|Clq`6mYLJ|vrib92!^IGkUGCNKe!kQr z7s;R;e7`rMr6k$;$=0%AP7fHwa8j4m_`mx1e$JTyo$Lr|Zt2l)YinsqRmNBjVPy&~ zbpYf=r#^j|xmcID7Vtv~h)AF_)pYf0*ml4~TL1tLMK+vhUoxwpzOA-?)*V(0O&u0R zd3myXO>1}l5TqXQCwwDNitITG)RD06uojT24o!wO0U9#xsNn)b{{S+hfFlLnKhnR3 zhYbFJpsUCQVXlTSK0llO9{^-Po4+bH97qfqgpjKy<(9n9HqI!|I8g0)K&-r6SkQGr zQ1g{Wl>?!`unDP}+TDbiHuA_Z2xRXqq*9_NQ-`_Ao3f$aRW@{Q(Mb#6E;Y`1kpl|o z-s2rDe-L4)2n{nL2xyU^OR01;WTh+Vjg5_Th334G2u&Xx9Gui>T2*PlU8RI<)_8z6 zaWCL*st2VP0e4$;D73d%t~KN)yDP(lLa@<50%yIykfWplJOtaZ6tI$F$CM2BM(b1caS63xzb@lPh(a|h4J0!`W(8c}zVgkLAB~FBR3(=A^ zRQ3bPxX;yOg+Ay#=(Q}n@)LA}t10w@f2sbmyUy+`nR*57Koi)9Gic@^Vs|wmB53UN zB3hhAU9FGzw=lZ*cz@eNf)>&Zb+9l7;i(~jxM*GwR#yuR*TlpGFifMN$UH?E$3PM} zmyBI(!li2^?Sq*xeYCK!AV2{Iv~vETp>bf9UWbew)SF!5BQu}2W8{2IC$C#V2t!54 z2K4Z?(u#J+Xwm}uZ5dT$9Ay$VpoE3sH-x)VlL}B&MnxIlTWI4M7a6(H2@h7%qF->C zvqd$C6PB0Dng();%07IU;ItbzP6R=NpLlw@ZS(>e!{2H2ENPj9(cggU1a4lygBNzL z{}=z>Y<&4;=IE%Q(8oVl`&!crwIBU4hX2;L%)UMzh&*7f|LQs-=cnb|0PILVQ^k)6 z-wb8^3jW476ui4jJ`>IupeWmCQ2T^!l6*z^)cle8hm=pzXXrEd{)fyTosZ{*@q7p& zt8kZ``X^0sjsBB@{y@U2N#vBXO*#Du`k!EQf2R!_LW|-%+q>sf+M+q!db;aV1U?4v zs{r>&j^Nd+S5;L-4(V4`#)EaUmAQBCs5IAFqtCUy1>!9j4ElqvUs*5jcDqH+?Z(vH z<&}Q}VWTm1bF&P?63xQsb;L5VbAF?Q#35p7icL#X zi5R47)j*Vm3`C*)Dy(ibk6fdmUq)Rp0?k~Ez|gXDdeDx}Ho*egJVW+DFoWJ-dc2Q+ z(t>MWQFefp0TrQGAhT(E7p~^sg{xT7F{Hi=UvuxqSG)AO(0U`gC5&-tcWv?i{Fndo zU;fYHTJrGlFuAr2mgw@@iD`cEMWgY>7p8ea)Lt1``8dN{QMn@9=66s(EVUnP&(9M> zC6(&w0X7_Av1yu!6`WEa5RjZgVQp=#APhn@V^Gj3>iYFo)nUL!1JQJxp(tcDWZM*M z8nj;t2~$(DWqH}}&txVh&gpMFiqRx$I&_#Os*1RC6c!~z(~P7976+4LWPx*p&_OwJ z>(;@6FH0d7FvcPZn0ga%wpkk;ttoL!IeVPhUR_<4d7*Ja5G4rb=Q@EfRNy0gN{x(+ zP^TE5W=~I{VuA3HdvkLWbpPPs;K|7eeDQj{pZiM8J`8@qlu9-$%xATg4u^&g6*ru9 z&`7~a6Dzssmf zB@n`)W-vB?q}S`Rv5AiI&-OYJa)Fypa;(zwzY`thn6B@6x0*9Oyp0`$^}i2JAoiqG9`O3)RO`txe<|3SQ$9c z{R0Dk`A36r2o|FpiVE)6E+Omkw_udCG=n86@ z%b0;l7;NFBWZo6a)@Hdnnx98??AMLL5lhhx5R0%-;csZ`!-|a8*FU#tcPQhY;K?cSr|9pazyJAb&t|ac z*{tiRCxw{d?9*Ycwmu2Hl1Wk(eCG~$Hp3pjL1l955^q#^szOFdp;YT#!TJb*u4Q+qFM~S1mKL$xUgB}Wz$gTo5Jh}sxeBw8@O z^9}}H6bt!l*9trL?%mtL*REmcRXZz|t5uoah9dJ$DxUevBnT8$K1v^C3|vmGtgLV` z7%vP)UX-%BYz|Qa9$bk?f7I{X&z30BxueW_c$Ol8X1#2hK8So>>Gk^L zF#}UBsYhxZsYw&}i+i+ZpmAUIq@dD{zH1W&Xe&4z=coBG!suHFp=cJs5`?g}j?1MY z*p$Um*#!omvsOw&OIibh#IYF#-``V^IcHxuLO$5cfPmDEg#{%V9UU9bW`~DIqhW~$ z+l-gO$zS~97n^yiXLxwHhb}_*hM`z3PGXaBEQ4kHq{Nnp?5wgbh*`Jza~TY^Dm#$Z#C0)#C03ve+W95I@Sm861EQmgp2x}5R^LD?yd0CPLI^%WHm>mE#fvAi;-@$XR47hGA5)d)uq)>yotcVs(43ky>A0PZ_Sk4?p}c2E1>@49gK5I4ue& zAvlXc7h5Hoti*yd|E7l6y%Zt*9>9MD@S)RG>h#@fZAIhXvf!bGk3U{0VT;9rOWC8H zy}fXFYkTJ?%bo7+?VVae6W{*!x32~i2Td1?=p74ht?&;ZjQ#{dXv`z%%wWvN)EeL+ z4zhL#ui05sS97^sv1U4fG+pK?1V~OnWQ*qDP~94xM8GJh@?%D2vh!7cdJ*HJc!$Gb!I(8crmsB9Vej}gkPi4(7#}aK zTqo3TA=EEc>b%ca1;XD`tGdh)@xp<4iD-F{FZoJcXF&ywO?b=cWRU=mH4vL1sHcx}H`$C~~ zI$fxizje0SeZVi;GWyYsf8xUa+KWrhynYaBhDvUy9q! zMuQcgI7LC2_Q>{#k87w0Kpv+JTO^`%)VYuj?hfxDDIM)_jlezce!esOuOkc<;M1Ch zeog!aiI_sa7LI49Ef#bJdVKP#ueSXF%KFMi8se3ym#a%Z{pAB1O6~N;g9rDY=M3Mq zYu6-0an)*>40;b-kDlikh?3sl$dpKc3?e>$^OR_AMW*(5PvXE+tP`vO7fwhjkmvQW zZ~$Zp7%qoZ574Ws$QDPh7v{3_GKUGfAF7F0w2Pdl6;aOQ2#!yaBg`_@r8fO7+9VF~=~-d-u21)?NL z+&Fd(%hb@*rwQlgema{yp&|LPxtW!utU|8=PU1MbB2ycalWi;Tca33ZNz2&fGmZf4 zJmUuyA@A+mgM;7w=5KxS$?q8eQE5ek3>8kn0E&u!&%f6F!*WQq7Ku%UJfzZEU)=;^fi>*ghYy?*Hz=(h6^v5Q*YbpKf1ir$f@8dziqd3@80d-gt`AVLg)j=ZnyI^GW2R?btO%E#&0x? z8m(dC{A-2dEjZ4t|`}0*tgm} z{UPx5^tAUO#v)+jb6~3siJpAvU-@6+WR#w*5QpLl4uzn7X)RW|k zH4q#kOeWNd+hm(19oY53{hc^t;Zda;r+qg+`Z~C4$4wU~0^8e#qljtKH?Q9s84fx~ ziZM7mcH`E>^t49&?+kKYfz!C+ngi*f7EK2JB@=QCyn*Ggd#VxVM(%7Y1Q-gQ8fU0aF_okFHI>bWt zHd$zPi6=EWNLlW@_n(Vm^p}Xl3?odD7pxHq#o%UP;3okvVFzC;ot$jGI6OW+&Z{^u zFfb6LRo}ost+>19z`8Dn3{)@35 zgETb24}x==fAFP@?w(Um?BX66>+|^_O`SRfB}-@(;)7~ZX4co9o>Qpv@a4;w@KCTv zk}6GydX{$&H5${?lW$Puc(i4K*u^F$Xs85DV%`svTui}d{76lb;p1r1Tl9L1ZR6W@ zJ)1@Cb6k!SfJ8=Fr~=dv+IXT!PBPWS4?enp4`0|!0u+#J$GQUyuUu|uAT$uLDRZ25 z1ke*xp&ULjA*F!yL2UI>+2&=LmBp8P+iMW8s#KwSFDx|(7Mo0sOawYd7%lJeQ*amC z%Iw17^)7I&BfR_gB7xVt%u9D(wH>wclU!sMMRt=hMMn2N=dz<{RT|t>fL*^Q2#Hr- zN(`P9g#|ORi*INfF_atxZ{!}s+*8mWNr>7+pu!(53qlb&N(vT)PtZTd3`5=lq3GWv z{(o9Ymu{Nd`a|pHaB6FR5O4G;sMhphbr}sNY&*LX=5k+u-&6DIzCtANM<9@8G=Jd< zo%?<+HgDRc;FaJ8J)GGEDrXfEZc3^Ox+i1W_{_C_0*=t(W@gx2_Yd~5<#okQLROQJ zh#>qKK^U;Nd7suU=f`)krMWJWp6UX(T);c#w)q=;Wud}8oJ2EE5u5vOIoA(7?Bs^9 zG1+l^<}!WY&Qwix^544q10-_%hX6jz*}#Sm+J;AZD7ZoA7HI=P7A6ww6*((OX)ra= zk0+q=9TX;Mx-+7=duY=j{~5tUPT2;zA}t*BbCpBL&kff}-n*7rc#_dw!&lWaonpY; z%%qM_>*^{<$!1!v*8%#CbGUeiXgyEMS(+BDjMXY+M*x1G~m|Pm`0hD*5W=KMIjN!PyI-Khg^JH4j zU&0yu{EEHp1g>`()%C8`#m;4?)7n%_xk5RcElb6s1bX^#O=i}fz0%XfX^BD!OOiJm z4rk#B>6XllPE0~8*qd*^FWjDI>c3dSIKog7@`BG?wgJxp1D;iLxvF1P{R&57Ea>uD zypKP)dH-y8cef8p$mMb#hC+u5M}jPIDgf`2EvUaWBT^x)onz&;E+;^B zfwNtoZ;LLn&FCTp(Z!CGrnbw?OPu~znQG}EQ_aqN%yn4tC0d2M5l|7jMkJw?@9VQS z@|zpH1vkohC}-tLrEFUKey@Y2ptVoW0J9%MCZxY!Etk}?6Yc?fC=&tKW0cziHf>(1 zp=nwcHjAd;WjD*2%}wQ69iGsu#bOnKY}IuG(JU0sLem&Gs+Drh)N9}wPy&P_1Wth+ z$rgrTbnwvXvWJ2JDdcuRA?`Z#gz=rM0qy}}g;zI?Zj$(X6rlhM(FGPa&d$yn*a=3s z6BohIEs}JUVd6N2O+&V=Fc59@*VS({F?R3%@*yqkw#6h|Sa z1*8|{bhhTY9>wT3;Z6rUe|{euW2g?@_OgCi2d#503@PkQ%t(j&NSy);^5bclpeUeq-iN!hSrL{M1=Fm+Kq`Jt>;u%== zWN{WRp^hAGyykEbVW@~@Fa?FFPLcl2`=JbTpNv5-AsD68vuAF2mO1Dp&yHbumI)rg zvv1rN=ZaMbf7hX0zrMK0UBAAvv~>3ig(3gDNXwY~JLcicOnURnhlean}r~I>4-@gcb{~8(DA$nXZ zt681z1tHjPtH{xcH~`cWwwdbAh7@qKW}^flw4KBB{t6YPApVgiv7xF4nE(@`jN=Uj6dRFJBZ)_teee zSy314HptJ{YPALppMoeTazya?qJXq3UQ0a(J}3B64*g_*74E5R9UrTZ{WJ}|UX@u3 zM_X8&xctAJiHW%xLW=rJq&zvkWou#F_^6R&EPTFjD}o!CJq znGEbCJ39*>GyIR4nQ_lj+cUez%*@R9@y^cd4u-*T5;I%2n57o<|5pM#@?_xnDk-bg z>MpKVuipE;SJ+y?@( zuX8<3o<5yicKy23+F$4z^&RSJZgzgRrJy-cfvk>6?jJvR@OabQ9G7cljlXh*)ZegI zV<}J{tM&fn>qB9B|HRIq zwpUU;fm6X1aWuNMv9?xgWr#8PUYIJv8;-5rSTeQ0wliit4W2#iZft4NIfM%^#V5Za zOnab2yZm%3odvYr1W?O_k1hjm6ejO#yxL>sBV08T3(J#JpkmV#6K#aEvxSGo z62rBEymz+TTb!P}N^V5>8{`I&?YB)2#gA53$hioAj+`S$droW1PP0Y-Ec!PUNb{=(elBS%tYKF zesuFAmOwMtW*d9Z#_qvmd(PdSmC>Y&OQEbs8qn>5p>>o3rEQgT>c~!qKD#bh)|j1+ zXH9UQJ?jzpt~J3sIeBEM6Njy$-m=xvX65HC2Hiboe)#axG+<)Wm&{-JwZHb)e&rIr zpDh-F7#AUgj1}t<<;HeVgv|8DjW_-Ai3x#%nWRGe$-nz||L%!^@613JPlL-G@d^>; z+%V)vg~GXWZ+_NFmvEE=4oBc@x&O@9zIL|%V=G-|d^~gN6i+2pRVB(N5~og8*D!Y0 zs-Lyeb!;qVhuORZgv@5!d~knplh~d-&X%yol(IG-#+gZI0DCRn$@I zoubgJwKh`UjV9vj)6?m+cVx^+)YH>bLjg&W0z>Hb_5%7^AyYYci7 zw8o%UZnj3dWS84G>K-@rcKg^+?kC*LFbX2SsQSVSFQ`RqRkW~xQXCZDwB&N9PTklm za;<{&80XIqIT;Fd$S6)u7O!TrS92&p4idm%s|$L)mNzVZe>9425L+2{VV{R&6Jyn6 zl27N(OxPe$gFtF6k40rVm&y}e$4;wbfasFk?xB{QRDKzqvKEV#!_6g78|s)#K?Z;O zexhR~MH2UJnoT_6`CP7LAz#rWE-+!cSW;jpWf=yI3d*t)=A$U2M!L&paatFavUm#J zIcy=>rw^?T3#pWt2apPxk)#>uQp&Lyv$J2$w~V-k+-|93+Qp-2C|kW$ynNn$WWnV= zH&e{ljtsl3^|}?wD6$+xVUSI36@}YHAtQob!CVdVto=R%ef~nHAAz%o#xlint=dxT z_HtzgxAZVWat7(3RO4i)J1o0TW0QK?En#zeMKfVV>*?!p*~~)33aYoBS4JT{D3bH% z=fZqpH(QTzqTL&opFBqYEIfXy(fjw0d-C!iAtOa_*u`81*=BOhA@t5WQDG2GHz?#b z-}`U>?Z3UZnZqjzsYJL6QRdyOb#ASdh%$n98#a+L+EH^k8DXa!VoT_XKVYFnx%xu< zN3%}q!<_@)aLWCq0?)s9dviW9E`-Ojj;K~jqQpTl|R+h z4ZXp>fH~q)y#4)|x8Htyy{wEp+ZQ?TL4qs^To`7RKEf=}@87@M?2uy$cjdVh?k2ql zwP9MiR}=>arJ}gz>85bv#Dq9DX4E-wWL(`iI2ao%ErDxWDrpw0Ro9LY7-*diHNu8G~6{QU@DbNRaBpkL=X4lU^n-+*4IDFc(XqqJJ{db z+1glN-%pQvy}n>i@4z5JlzfI&=L_EcfX#8Z6J1@|*-h;xOIwOMbaujH6F$q-v!8dk zJ+8sA@$rclUsv+^bZTRLb#>|8pDB~iWdl0c;Tokoaq05;fW2BRHi+~jq=osVr7MFG z0r|Z4%jV_UOK!{K)r=`D2sXEW0Hf{eUth{b1dR4an=Nj;2Wj=Qb@~NLU-+q^yZl%# zH&%Mb`#s;|d8Z`Y9r`Kl@AwzMZ2kLE*}2#nD$rfA7K|Y_|wYWox#DK`^rxbvbX-y5q5GMZ@Ddtix$}H zI;nHj^Gek36Qk(lv#gshZf#xstRZhw z)s+?U-|00#If4B84fy4^G_jk73Sd!YtIOu``PSDr*S0^p{b2LSmM(C0(2fQtcqTw$ zCq0V33-)EZ0!v%7&Fhj$2D_TP5H{I7-q8Nd$B$OC^B|~U`<>-1v5n!KF&oK3C8=Gg z9!3+`D3_|agY9jf&(4PiFP;xLO}wEv-3TgQ+JddjX0C36to_WO1&!RVx_maNCi~m~ zyxR&pTbb>&1a1fc>lR1D_UR#;phsb&eoz%`gGVy@R|Z=girYnaDssHQ2z@JX)a6Ma zkckPhM%>ubyXhL8tp=V}l-z?vC)@kC-s+%JI1P#~bf$KDO`$vf}7^LX#oSNGO% zv6_DM)wE`5!s1Ofg{yIVE#ka560*R``{G46$wkppZujx-)-gzk)Y7BHN4sV=*BH`qx>%Ufcx)51bISBIsUI91 zEH8)Q1CGV{9yJC8{I04#c;GoT<#(&qS1(noK40~gDBjW}4DeT=RSSbOed(&t=X>d; zdi~O+Fn{S%z5ZEf^Uubx``c0}_m2c_3T!ov{)gJ-3+4Y1Rqh6U1TvrZ5@*XheSJIb zmz4*1gqPj5i;4F%DvDu>BC$_QGf`ym*jL0)GHV7~U*GP2wrXOyzaoNy3v(m8v(?wH zHqszFyW87)_((x24Zt5^2&Mg+6^Oq?JXYkHdfrbOhDLcKf}Vc!RC#xIWXLJxAu&Hp zQ<^@+MV6|;UZ7bdCy+NjyWI!Lt3%di$MJm>Eb36eT&>k@c86GJ7{s*R^rEL)BwmyN zr;(54JU)yulY4b_gu&<*FwDq5)5ve0XM0yR1H|~)zGpcont#2S{PR!Noa)-Kt!^)q z$?W{Yr-Olwjlkg2Kiq*##`S~F#Z`}IbLs*qO}4 zL?V$YNdqlm$-c%~v>$XJ^B1UtDwsf({eaB$yLTo@SXWF7i@aQW9*JZdU!7 z>h)6T%$dgnx0)_#en}&LDop;^yyehW-LP05KCJ0uXYx!>{Th-We?3h8@_c8ve~fL$ z4DqaO_YKFx^w1YRk^l^@7xP0KqDuN>X3~7iKFH>BM=s=v55rD-x^0Bd4y0-ROn`<86t&kmCdD_T>aOE4cMYWQU%_nKk z-d@kKV-cPw^?F#nu}^|nD1u}kLV$rRBfJSL3T`O%+*ZP@gff)bXgTOkPtT6lqnE0p z-3?j1+b&j1x<2d>bxdzvbPNx_c_jB`9{+rh7%4SfYGFx|y5W9SU_^^-$z8`JSWfG2 z`W91(I2bzclF$nFxa!*=@aR^};}~+w45^<3m|_?x{mH?Qxr0=8ASc(e5+iYKIPUpw zB}^6~`~q1ZGXKbSL%RL``|>3-F<&Axt$y*NUwQ|hl^A)~*z4U3 z9QJO@W=J^A_}6-W6z@+Co|GVU(%1?N46t-q3GfW%jsw7}rPan_>3#CS+i$C#L@(86 zj-~51@~ljW)rTvhI%40B|6q7cq=ePvNCP*;C>eH2iB|An%P}S<@Esxp#un5d<9QUT zS<&*39%=6MsZ$d{^lWeEb9%Nk%VL8`xepU^mmNsb-)SpI5nOBuQ+yE%x+JO-(X72-lRvE<&Zcp9bHT z*&nsQ8;NBf-@E9}+;Q6;)afCT|V%$&^BlYOf zxasuiiPL5RA|-}RC?b!RRif}+U9;YW5>5}TDYGv`_MxU#k~y;QBKEMsdcGc%b^vJ9Io@#0|1w$bGj1ln$P z7VtLbbXAfQqa?kw#Jm?yBrDZ;*e+Z80GW(2jBPD~S>zdu3R7ri&I;%+LuW!Q5#|quhYz$C;`^v1#)45q#q5sDCM!SNuIOv7r?bCEHA32?g}H|3lEID~d(Icgdj z84CG4zTR`i>ts&(<&Bk<#*4q~m%ZrbB*m-<95IuD__PP8;(~X&S*i)N+yI+CgwmFj zqBV=G7Tgfq-v!Phn@n4Q8#hc+pm4iD%lf>aPff)ZY`UU&$p@ixx#S1Rm%gNg1>H=N z$*`zDeym#ukNs#eyNA(!NIrJcgf>-r7Y58_0I2)>?V}eEa8DNdF-7MfpLui`A+?Ak zHLWzIu!(Jd_ld(n3XzuO>6rB^U%CFmg)5`zAdvi|Y4j^!`HFRKdFcth;U2B-F$*Tm zWwqAt?lCKP>C0c!Z#4rG-ey`Ix`T{*+;BfI;zu)Grr!xmn-+z>7C=HMO)a5UH`3J9knkm4T z6OiWqQ|D)1xOR<`jA9!6+sc!>_g&=EOazYo6k_5Ln|Ha~AL5Jg_(AkAx(MM5_dzdg zKBp1J=56|mmIqHVswhf|%|4*Bt=DgPl0nLl&E0#@p2a;KY&H}>m!7v5fb@m!N8Z_< zEHB$^%i=`(?QbO}#Ol=cI~t`l{3&|^cLzsnfBMwE`;V4}f}5Mcq2+(H3z^JrfB&xg zhg^@>yxz6Pt{-wY)9U7o2}>hz%%e2PKPOk;YjK?#<2s*VQY;UBkK%{^MVXQo@7XMa zx8o7g{gg~3AWUdVV#s$jy0*Y-V$(BOu2)V%ARJa+qS*N~7c6lTLQ|OVBSAB9yX8tO z0Zz1BWMek|fNkz{h`Sh%5g~k7Xv86nh+wGoU@yM4w6(ppy`9NGO93w|PM5>$CEJ4| z+pxWtRi#(l*hBz`D&>V%SAcT3ZcVnYNy*nQH6dT_25A^m7 z;uFR&g@b)X^1*&P1!ApF-EY9~;vVD_GvtS{#f<=hg zQw#O<5@_+G4I4jyzEl7TO6NpT$RQLfRB$I#hU8_+tZ|1_DoJj33581IAPLk|1)z2+ z$|jjqD%onSVMO}s>F?ga6kFIhsHou3u_z^p#XpG^;?fr!^869kfQa?7HGD2e{d8lGUbUjl)Fh5PKFnG~CO6^R*nrw<*zTsSd@C9 z<#99;3-=VW+$d*3d!jqhh4@$`;zl;zv z?XsHhJ;*jK5{9itK5zJ-BlViN-Hkx6*F@Q&4ba@A*nW-&P9{_>IvL2^7qH>Z+HU!S7)j4i{+9(xgE`+2MgCcMRWc+MJ1}=3 z;AMuDRtZVVUO%(+8nV$8%*pU;{cxS>st?eTW^`=@gNq|v+wZfhv&$!~tq_$b&1d0$ zbMlt#-6ZQ?@$+s zc<^w)Tw`XtRUR@lM?){>wwqo!-I(+J4o6tIa%E>FY9NGZ4Q|0IIMrf$%Ee_sOb&>t zZ#Wto8}s#g0#5jIh2X`la!7}P8hTN`kizyCyQy5*^5B6<;#uJ(nWx7+gGk7f%Y$Gl zMb|chK2pl>FM~WK3xy0UV{(S*f$HB`E$p=%nL&SAZd8qkn-fg|=6}DixX842RYqaM z)?2#`H&(Av7##HALo`V9oQ?SA<^dau4Z@tz zIZ2A?oQV_HK5~fb?WS(flxLY)-1Hb4%LzqA6V`AIVFm;G++aGnUi_i)r^AwZ(DG2QZ`gp>Q6nLIM z{=-Nu+TDJR(b#o{GGsLN2pc04ibx1Qm|3%GZ}OXTprN%jX8&K?AJ94LR$-9E6oimf z>>NmH_u>6iJ7iO-t@l5~h27;V=k=L;*fRf#0~+F?M<2UKo0|fdsyu4 zW6Jk8&qYoC;-2iy8>K=a1sYr>s>f#-)Ziox8LQRl^GcGDN+x5;T+U)iX>ZyjWFcUs z!qbqh)Zvr2S_efEZJ-KbEXHImEotZPMd^PBA>^e_>CsT}WZfKu9Mf;cs_)0_@|j60 zVMZ_^a#U!_~JZ6Q_fV38i#8It= zI<=yd`h6CWVVY|^rF<2lm>LI*b_`5T!~lTY1%D-;K2yVQ1S!ueShLL%1?9)@VERzm zLZwoVNR$|qP=2nfrhkJ_^4FPnwoXk2Ns1m;Brg*&gXT$Y2p?TiEp{Lwh=`3kVGXQE z2BwM%?;{SQu)S&6jaC3}m|c8=3+=z7{-4y_^Vd4VyX%bx z;ZY!-vcd_}D5VmKeTXh{W!_>d*-Mp@4h*>=iYA-2(I|b+M*6g|(wdL25=vfV^Rd%% zQYKS{mz&J~J_>U8FQ^7pXW1GU`S!f&W&kkE~*WNHM z1CEXj;*R`m@BPWPef_oPmjP>ZDnqQjY=N}8T-Feik6HO_+KOO76a^W7ZFZ~n@j?nH zb5PKgPr=zsyTL$<5dV{tb8SQD9d5<;nr%d$q0m{kNt5T2ciNZ2By77A|w)>mu*&6G~N zR2hNixg&DZs>h!ol>9M5h|;MCnnp33&`5-faHV275}?G!EE`CMSvEAUZ6wRCKVBz= zBXvsZk}O6PQI_h2Hc*jR>nY^wRxfU$;|qC^4|6`gUzdak=B!!!)RqZ;QpuYYR$kA8Cdn|!@soLMk^ zdi(Z#V*7?*WI!F>H~xp)u$)a+5E`7#R(^gn^?Xt@m9c<^xwtOOAKR5o3=-1AjsoCF zqsENGRLm}wFb`7&A_pr6+Mls+{2B|SgVs(E}piRag*EUQ*Bl&oX2P#YHq66YLyzLp-^4xro!ji2pI6(VTE}?agyTB z)|-S6bGgS)-}odRWmW|{oo4(QwRrtuD@S-_q}XgQpq1s%!Abl8^8F!#&RyH6py zv!6jcXFnG`{85zU#|R-*6oDc(V=@^%K9T5&t(~1BWMC01C06u-MPN>53LJB!TW8kE z<|^SVtoJh;@d)3jBR6%sNX)pU5{8kcke-eRA`whNDpwa&Ur$fKrYOzAH46zKb~+$9MZ2L2>%@%#oX-kDUAP@$^6 zL_+?Iys_bMu&DhRIS|<0Wl=lE=vkk^hBP<>|HKUk`$yC;DTGD;4*S=ABG@db3%T}6 zozz~@Oj}zHM+G#k!2Gq`yh+~rjzH*lG*ck3v(o^2lhPBGkxJ`LVzbSeS}(FBG^O<- zxp{NW)OwGl@W0^Q(~RabYTSPJ$A28c)HxF2zVwyXu9JvnKT4=m4^un2xjAy(_!GkH zciwt?RR=+_9vMaO$g+oh4!aYH!8oLdNYvCjWtFpA z@I-AbXCLj9BF@{lZ@%|osnQTYK$NR5UY?oxX1CovS0u2z=Rmu(ZktWQVKvsM&o{?m zW2Vu=!@1V)0-=b6%#*;}Ji*;AITnQyg4pJ$$)pj}+_9983h=Vi#aHk{$-Us8p_uq` zG#Uu7sPT!x(B7W`Um1o}VtpNOsnRp@)EV|xe{9?L7uZ{Btu{T4WA}QOmn|0UOSL)f zTl}A_e@Xii|C{Q+ruMhFfB5DX8-KL%N9okmSIK|FzrToo6;d%ghKHY=6a?+#NMUNz zJ3a!MZDU-x-D#Dv_WW~y!R!6P`02B!U-kK3WuL)EkAj-UGq(CQIV&%n|9CO@+hwOHcN;wotCKV-@YuD^*=L}|E(EV^R z6k60ctb}0>M0Ni8`LmV{F}1cB7DUfZy!TD=9BcGY5X9ByiUa&mdujV z8$w}Eq|Qp7O2iIYE>Qg*7Zy2Xa*_y~A%r|((GwI5PSBjJ%DzCb7ilAhoxSJ*o_q3y zY{KhKr3lugoQmyjwp0Id$NN4jdymf^7+^dIJW{L&ePUftLydHJxV?`on^m#VLXn3> z0JDbk^9Fb)-sU8Cdict%&f9uKrQzF=?fUbCLI{-Iu< zMIt#c2yw!3nu!vy4T8zx@n~J`K1TqVKxV&WZH{zsW5L0e6^tx3F>C^r+%q$7ayu>! zb5DQq7x`gxmLa)`4VxDGocdrZU4@lGEsev7PqZbq2f|XoULfXlG%Q5ZW>V0c4X-zs zGnd!P=3LI}Z8%OlG-okcuP2KZk~6t@-et;RcsMKZnAubn-D1^bj>RkKt+YnExDDBS zbJKA)EnNn)A&!qoPxaEW_Ggauq0AD;=Efwfp^~iK@j2Hf0X&bu)RGiZaseQy~jy&0bO4pDlB`{Ikjf;^aHEh?=jVCC+7^+n@)EYwG))QUTjiw z1C#9W+=*4gXc%nOXdJB?m)cfE0k_xJnm>oJMB2ePeG4nrc79GcNXB;)VIi>_PaZ^+ zB+7|`ZYAdfj~?BD@`Ro52Ds^yXA3Tbq+p;o?CK2!C8)}}s?o8yXyuzu#130C%jb1F z^3BapGxxb5MWK2JJEf8Z%HV{nQhHhyd(&nwZCKG5bX2&LZAdHiEr-oh8&_;Wjx3xn2`PbpcTW} zN{i5{6{u!68G4m7nR}VujWa|c;^AepYVQkr>~1$XZj@7NPoCa}y69ev`p=$ArSmmW zbue^!@2SDQzO^ip%hnZGfhcv&KGhe1{HU~t=MN1k@S3+)sx@S{Yv_4xCbefL0Sjkn zWD-;K#HDlz8J+egKK5JDOxJAGT*Pl(na%!ANs(;#aP(65{j$9g1A84GF9W7QOremGFpS{x`@C5o(JIgyM zZJw(Van4j&y|r36>lgjZNvnyJAQ2(fxz4T(k&v+#7ini)q`l2WZf+iKAnY9;?y%3p z%}uH~IAU-nhd#ER2hR@m7LBJ}!v zJ?zsrFksXRX@pF^Sj=bGRiSQZD)(R^&vAlGDa?^M>zVTrC&yz~8;kDug!~Q@XAo9a z!$_nM42#8Jp9$!|q@i;N!&XJH46~~tDT}hYUBO_bl!+BmhtUt;zkNI6EbTnnK4{o% z3lF!;4NDzOq&?4e8NFlqwYH^uy#d(yq8eUo(mj!}fsh~E=W62q3^&hN@#>-Q!a&YTE~*(|kKsP@f| z|LVpXUnm$ho56lP>BA`h)I3Yizr@LXU}m-q(njJ@GRNj}w;z~RSzCW$bM)xjc~kz| z&g%IupRa0v;Thh1V7tSccTQde50Ok~5*7`-qcG&zTd8SsK3_1oTuMQU@UgtbJ9qSk zgT3LlJ6w=_|0+70pEzHZfPOOa%gh%?1#JUm?Vwm-B8V3Ko)^Va?S{+XHn{oA+UtwXqtAEJRd#BM7`B25PZFv3iL zeefN=DXo3<(Hhdiw?OpG6HmI`3(@F;yP3s2eAEF*H5|jYqcq(ex>ow&gN4G?tBUEg z7AEE}Q6UV*(%0DDrgTRO^Ln9B4O8qJj&pFd<_)0n4vk1*BF%T5%6RnbOvhi6qUglQ z#6@}{L5tg)n_Dr?o=Dg=nZh_H%adwE!LHm*coU^fpt#RuDnkSqi`A*BjzjN`6Y>K@ zRp(}zi=a!Fv)PDrAK`(`8s?+X|NNh|E(G4Vy0M{}D-7zD2a+ib*`OerL(tc_V3)}` zk%qmnupnt~m<568Wfn>xk~h{%9GGJmz~rSqun}u(+Bh4GD^2S{r>)U&;8Q8AY=FVo z$Oi)XHC(J^1A#1(QY6tN6RxJ~`G^xpnHnH-=g<3u;x0faKHtZzHn9&N6~qC=#!2}D zyaKxh5Q1)ZkbSzm%gb$goMrSl+os34+&k|8&~)$KgG^ZEMZ>668^m_@{P~ET;~^9| z+}jNXJQf)o{Wp8v?!?*(LcCImv(MFp+r3e+_aQiqu*Gn)D|=yMX^C{m>BIMKf;QVho3mvrwlZ5;**ev0`sT6CB(u{yG4l>>mpli|#uH;8#bmbc-W>?XKG$ripyQ$+}P?_MM zBSZjs92%-2JbrAqg9GTcyYEQsMn=MPWMt0T60tEPEQ?2yJBDq&e}B#jA)7%dnrfr3 z@8IBnLt5wBGo_Q(ulY4$?$`Vp2;aiO*RQ?y>en?l3=m7X{QA1x&SJIEsFun{Y5)Dd zALjo4-zQ%*{+RJ~?(JV{O5fZNJl754a;>fP^hBeiRwEp*wXC2BMLd=c9_9Ae=}*1J zWPM@!+E3w|=B?Ih)k2}2Dzg;xrmS%XQpa{~qa7QCR@>GpzwoV}uVk)V$#i6_ z&xma8tp?TW*IxcYeROegRI@XYH@KbV-~Rrik<`?NV z0%x%f{8{yTt~BDIb7E-3zMen!mXCPU+p&N9cG&#Rzm08-jBK!|c{@X>P^{IQ&XYsQ z`D53^=GT7I;kb}ov|?p`$*RrG4xx%@EW@4>&73Kf1%li zx;&pGJc!pEi?y{y*-!;7)*8yrcT%Ws$UhREPnYXzX<%*9Q}zef04XF{)XnIgbk%N z45cWB5{49wVkl|dqe2!4|L!~QX0z>4QEZM1*&wx7UwifP-c9x#lPW2GUYDb=o5fSQPrQS+8lL0H2L`q@=ha|g(K@w7wx+C$h2T|U zwH|wvXY`O7Mi@+87@za%!1A)K)<_KW#twTmjdI*KRq_L6UhA?*XwSse z)i7OMowv67xkLOqGxA)^HL8_1m(dL@qX$?9ENb3XYoT&Q=QB%&=56Ki_P8D^*!RQgnlMYZ&CPlH7AK6RH^+Qqo9R)3+wx(F zljX3WCSuv#RvT6_{tw)-j&0C{6Z(B3?8Sd%)aq8_Ai2u%8??kQ}e~LsjcaE`7 z`Oex?V(e47lgY39bzzFgz4rR`*GPoC!Jao5^F%s}4#$|MHt!T66p@fulV?s(Cu4UX zZyg-&uid|S_tE-JG@UDE4_6i*FYg|fnT_g$<-=U11ZC##@}v8YcjD>9;nv#I+c(~S z|EBh8i-yNy$xMtL*Pcm1znMrLUqja!Hw3t1_p_TJH^k(mwG4tCA7q}8$kxy?RPldkM!n%AqiUfPM3J96hcgd!4h?acX1 zN?+SfWb*N~#Rrd`Z0sE5D)kb8EE~J=bioi5T1Xtk;qHi-9WJNpc(8Ea;a)Oo#cV29 zRcs?>K`&$u_Rx+s&d^hbduz*2kZUQI*j`&%xPR-`?aT%38f&#KwQ%=!@|o*=&7fR! zp2Pjnh0`PbOm{reRv!EC#nZm_9x0Wv`wRAfE?iq%>ivQ5pMXEm@u2{Oi5>_qO;(## zfTSGFRw|V%rF85NB1gEo+1h-1XJ=w~bmzgs%Erd##^zo!GXhJrH1@)|g3dALgv_qM zWU~1Kez!N!+uz^YHvl!lHLTIh?(X!kAF2`W;3-_68umT+`s}G8zrV>ZFfYq+I?VHY zVdQWNt{!&cWqc{MuS>Wt9&WSiM3K2iIN4K9o8!Tg2lp11cMcMTaP=P0S=o*CK6=Jn?r@gqk=9$!4T_O-9s{r-{Du)YJWxVF2$ zJ$C)&7hZnll@~8xnz?l8+{D=UTug-Jzs7pR`8@ltQU@3K8Regd3Z~!5a%dNS%T$lp{FMnJKTC2IHMV=`CL|#WMVWSUX&8aEY=S;clWlo_Y*~GVnAW1T5kwau~62_DNquqk~a_h zv3M+=f{9B8Xu}dTSJ|q>+$lh^!cY!WSL07Iffm41p>irMX!|0qoY=knushZ zSg$3K$-(`24SO8qjYmU*P=dUu1gtfRktihW&9&qvL>Kfde zZ$krha0ovcP*fTE;mV55CiA3GuN4!~DD+a>8|yH}e!770@b1s-pBkIk-_l+!$99(5 z7^Ds!X{C8xuC}JfXs@FUTk1fVtRY-aH4#;vHTZY5ZL?-Wm&EvQV84wLF4k?HxBq zv|K*9eqAW{1)Vn4?jJopKIn5=MGos#pufkbN*wsSGO@auUbX~uMn*TeY__GPI2y$2 zQ1omvldsJVi*|1i=H8VWRV>b)!O=daNmNv~A5{GO*~zo%Z0amH4J_?$y# z^;+YlcNJZZwFO*q=m9&+ghlUesiYKzjugv<vlkLcG0hB#eZ63kYBa^}o zJI0Z$Zs({CB)i9})xNP;baCKSJGG%bRLV%3R_>nmd+Ih=jas3IKXAcK*yjkHunXBx74o){@oimc!LM znvBLXd!tTMqb!eIF*9Z&Qz?5;phkM<>60f30CoGgMzLf_oJ(@}or1wDp|dlmLiUBl z@BI8P-N}~1G-wO^9_-|&LbMoPe(=DM?L#lVaQSr5-q_P#&Zc40luE3uF$Ka#qNEeE zD=<8|aO?dK>a|8gy7A=kZvOE*Z&mE4&zu{qZ^dA{yp`op0*8RSMVNtFETjf{P^;;c zie9f*i`k#}zF~`O@p{5EQw{qro*r9?72%iR(u}!q2><^dt-v3orz5dzOJuCq;F#^& z>mPlT%LRk4zm6uV5#i5S7t$pv^sTov>ahH2()LpG7xCs_W^|)2!*S=Mcu@iq z;Va6_PJeJ_5P!J}Kv+B5eh;Z-)^Hrxdb*fmPRW-(TEX8^rD(+)eY|*x`N1H?0S239 z#~^N343ooZ)QP0jbNe3lQmOG)g8e3KIw3r$N@ieEOy%U(fp$#? ziJUp_rb*UTIp~6u(MPwI(RcA;L$Rrr4{k&aB{V)UIXTjAQ7|xjr-B$X7@kq&oundj zX5`ehYhEvq6I0i(Uq93D7HVK9O4$ll=xWvAnbmT&n!vcO5GU z@e!wyK_(f)IXZ3_yrKOC&(pm!kwYkANFtTJr%#DN7=@r=vl};UBnyuoi7+wdU#{1Y zQqx^y(>V+>fQlO#2zIF7?E(>+ldT5F64{m2Y|Rdwti6_9TghhYHRk9MPclc3C}}dF*;Zx0eufgBlKp?x-hs6@@e{ z%3EG}`g%{6zLR>h2EE;7=LHJASe-jSL+}UuiIQt(RMnyGqS>3hX^DupkQt zmEcKB_v)JSsIWD?UCxddZbU--<>jQ|%Qs1P(;GglU zAxA!1;z*3rSfNxZ6fKq_i+F_6Z{o2(LrBMu;^bhBj91 z9%lW`B53@fT|ESD?*zsm0j*@tt<9hC1Hgo}0825UEZ*tHCHfBz{44^O2>>^cwT=oA+JLB^J`!67V9rp2|M$+e-!Vg9&92L>*QZBUOwE@ zC`F&%_(dGb@QXK|MoW#xJ#fCj<*hwkymwDKWsr>xT?b7zAb$YKEEJel$)KP>)Tosq zvMARKSW+1^ElhqyBY!hY`}@N^9+H34Z1qd_w%6vCu1OWbHjTNoc))kZ7^f-JZH zYFM3FoC{OPHF-e*So7%Wjcz|WnmRG@^rO#rOSkkGZF`ui`87B!(TB zR0W0*Uw!y4%b0$WR6C*T0S+K+9hjKl7P+2jbGf%{n%3qlNRAw*$IgVa8i$7#pK8QP zDpgByJcC4u&son(*_u;6A;S&ZH_7Jd#?z;b;=-;{Qg#-!`DT%O%KPU1Qje;I?Uc~N zyw6uKd1=8^Fg$pI6+2sZO3qqVZui1#XxZz7#Oon#;?fQ+lHhT`;W7fJ6ns~Z9;4W@EQ+?({gmaR!9ye)uyX*??MkdpTWhN%X>ak3$z9%FE!5!1@ z#FUl8N_IuxUWt(ySs`29RzG|q>2gPiS>u?ip*Jb4^bzN0c||FgBc!Hr=r!C&{~@06 zB0Sii%k^_AgnlYVtC@Ime9%ra%ub5hhDPIu6{^h%l0mp9hRqnfVa5mE(^V9B!ek%>_G0COi6aBr;`6Dlz zzhMygg#kzMPDbr#K5A4_*v2jZkXL*9cH*2pZNKQqxU|18khz<3u-j@M9_wp8W>32= zrthWg&Wz)NHaI}Ic4%(2g|=hS<1kQ#)uZTeh&q*^X)%RHMnWcbts9cT;y~-?YMR|M z7gzU6cn0^6o@uq=ZzdFxkW0Z-D#-DY<>9SG2yT6o;8y%jhYeN6vw9_aI6OJ1=uz-E zk2iLcd2nf|Tuqzva->|yt-}q`(`1cz_yazt!)4|oo>~JtF?K#&pM@(VlZhli2aWkl zHASgqa(eaR#bHzV-~oKv-P+;A26Jje1x`}c`w!Q10`o3@woho19j;zx*~qFbbP7#= zs?TL6>7CWhWWLgfc#LYX5L-s6qQwTR68n4H4pp2#mW8kr493iL-fXV%W|dXPhC!0a zPEYx{>JHx9sdBE#scfdoX;wC0SR|Aq4I|ga&rK&{xyGDre?KK! zeUq$}DMn00F$55n{e6h(TrfROrFwe6pe?bo*BF+4ruOLed+&YtBwjG!Q#lsRfS4ml z7R)Ztc{oaAR>xD9E?yWmSF@`NlHDbiH3*Hw+};NB61NH2s~#BuW0n;y7F{R2#cL7- zpHC31-u}}N8%+-M1)uSe{6fb^GDb0fuy+aH2otBLd!G*)Yht-3wfS5 zBzA~r*)~fZjyL#hHcgJtLH)Iakh2bU3fk!Kkg86NjUx=WKxb0%vooV|Et5omA5~R7 z%;pa_DOFX?e!oH_N%625fFVl^Ed-fR)7jgEgBf2}+05|f?tbt=o!r*WuCFsQnC)HY zM<7FHm6F-%QcpI^yeV{Q`pm_dS1tqs;{&~umzn8|X6d(*S~-*4-^Wm>g;Ae~zr3@s za1X7voG4Y$&Xn%&7o7kJhDrN;$g->7~;)l`enm*`XzzP%*-8e@7CipL^KQpF&bF2 z6^mkhp}ugJ<3oFa-4@FHcjMXLgY^6DCX3P_<>;O#U?$9_zrhnZ5Q;~O#Hrd%VR!o{ zy)F>i`DyO5-)nb(f+LF9aYG_|m|(LeQT6+SUMrJ5!n#am$55^99)iQh^sK=dn^Lb6 z(H0m5S|T7hBuV6re024}14?UIqru7c=1+FXfpv}6vz?!`%VIgfjAG)3L7_K*8mJd+ z28LNf6s2-}3zR2e7+kel2@2IStnyxrHE%-UQ#S`(vh9ATG#8J_=Dt&tHy z3^O~CFfrx^K&2~0!~pFH^mqu9+$4#EdG4zpY(=*Z>hJ|pNaiDizQI{t*0BFUjKE3! zITw5MeuB6!oIB$o@rMtzH<=jFXndou-e`7tDwC2Oy{KWYV+&Q=PL%9+M-dWp=CxX2 zUaX-9!(WTg@@1Vk#38#wR+3*|Tg?#WoS(U_U1N;G@Nl~pQ*G>@+h!w@KZxMYW{G~V zzaQNPjGTW6w}>F9LYN1Nz!j#A+MN68S{#NqK>imdh9DyC86LKRT1ZzAE@#sb3G3<2 zn>NP@T&7a&+XkO8!NBnUAdLUqy>s_8r55vJhCilL8aab*33Jom?wm(t?LGq{%q%7{)t6%-^%E=c$=_)q=PU*WQeRjGb{psas3xz9jI~Jq(6+a$Os&Xs+l{PjKy-< zd)Z>iXxt@oD~w~v2=GGPxKq`#v}Ca^FIz3;vPJtQTdh^=7r*8yo*qdJo6Wl|6 zlt0||uQ0B%V6~~%(HAaVIptUNs)^n4ow|JGm6?!Q+j+F`aI?y`Xf(`RW0;N1!gn(h zXGyiv(CiN$t!!p}=Pz8uidf!Wc&LrnYs`C$D3?}m-T3z798@Hp{(z}gS-*Yz?s{4F zOuhKh%jW{JHqPYF4TBQuoce~MMNTMJ?ogfJ!^K4>>7LXE)SksxTtOh|d zQh>lY-}G`s(OI;ry`gmWoy>NRqeN$rBFw~?({z_X!L$fzc&%of%r zR`FUDjiBV>JD|7g@p9PvbU&U!=IJ;b9g}i=9rt(Qx$wx-z2p0*dOb{3Vew%5$JsqW z#`k;d90wJKYHBc*gwqa{9H?gV5EEB`F_mEwtkU#Z4EVyHCNo@|@SU4CPuS^@v^Gb)h+R8>(0nT>vqHR_PY`%yj#6b>%x9CnYi}Xy0U1(1ePgo(DSWZ*;CYp?7vvZ~zVWmVF z_dwE`s4;T+^2v9hXWZP}ZREZET38kyKU{D~dnwJ7DV4^?22JP8JGiZ%I(shRzUtCW z)J5i{58nNNc?;B@#UYz&4gHntuUxz+idq*Ex%+L0!?VA=Gw3TC8mWb$-8kh4RnnR% z7Tfg%Lr)qbb!Mj{VFRB0FyTHv;Smx2VmX`s*FWjN(f9VB{MVUtnw6eCdw6*69DVR0 z5P+q&)kvxr?iJj`UATKegU~su?EBGwv5j(Ai^W8u2`O~B%w|Kgn#RxFeq1mLkMEuxR~jcU!2=$L&1x|VGA(2V zCIWh97bc95>6%O%dz@<9da4bKpPo8>dVGBB)Oq-0S4(xlWRZA*RC4f4Je6LxYj#@K zL4Rt3ZD71XL`4Z(IgzX852Fq%SB+At4RDo0D!O|6!|y)W+)TjiC@;AO&R)23=9J6I zOMO%JXWBc6N}3bzzwg=E@!X8ZZ)zO3GO6**EKidq(h})QaQ*c!5 zH#R-yvu)cRJrGUO17|{Z1$N`a&E``x!}<|7j!1}t1s-nPRZLo*S%yUD(zvE9T)(a; z3*@DjG=2}{B0?|R)joczAF>o7ZR{=df+;6UWLzx2J^em;UkvS$3*>HhKI1l9p)fuZ zwK0cUi3GL)OLNKx1_;;(?--k!eET+~7cY*E%{@P#gt>1=-4O#(GESC6<@&-)O?c8;z?pz>YOuDe?0oiT;a~br5wV@XosWlc* z?eg?=`8v@A$9Jz>{E&fK4>V`qn(@wjwWTgo0jZb6x(;h%{0gsrUESHEE4M6^~;jmTm|)s_(p0 z)uid#O|N%r>m-d$Aq_KPw+|3HzTBKHvjP^nwY9lf@$LmS6ma9Em&ljCbTVI;V}%}q zE0c^HhQ0harAfuwYsys^bWwm?cHe(h8UMb)I*l`Ge-i6Snh zZ*HNeC*LqFn1bA91u1e@oRdmglk~69eg7*K+|mDQ@~v&RcGBC_Qzn{cl61|)t;Aw0 z+(a-q0gBC}2tv~>zsWlRL9ZA4CGMohsByo4oIumNJZF0HWMH5?F!1Dwp(#u~$L585 z&gAt*qm5|P>owZ)cVFjZJ|~X}Es7)Ot*iHlxN1E&V!bbk4opzo&MjDmriaAo+`_tb zsF~*n$n!(SyGVStM1aVnrEJ}1tyZ#}V3i7mvc+61=aqUnZ!nQo!i$Re765$qy8Cs|sznVo@yRe9>H1l}1jNZS_)4wVd8il}bL#n^+-;Y~%Ae3CWlWEz9LRD2=KV zkg3$jRzxc(R-V{2e@*8J;1m!8m_=g9R#lLy1}{tDYi5%Q>MJsrSiHpq08qmazzjmV z%S&}$0=HKyl_*!w*CmOsS4#zhl42bYB@x#1HA1CIg~^g@+BFqP*90P{%+H%>YH+m% zry@mcc7=M?tWtxR>mtRwirFI64H+5bi&c)6i-j5|OPpLa!aYUgP~#cr*UFX{f>ES__dceMs1Kv;k2PdRm%u`3xCj_%;{G=3UPbUR>a3TeEBtJ`lDMX477rK-i`b)>UZBHA43SZU5`S9o5BKuPC$#ctOuKv!5)p41C@n@yRs7V6mA z$<0_V6xvj1vUOsgMP<$kJBPTbkZ2IJ4_^naK-KqjTd`DcH0q_I%}QufJKuiNT7xCF z+1#|=k!5PFa~7wCQ)N_MmesBk`DX=Dv6-Z>In?XGwBs1kB#foM$Y}v6jJ-e>`FsrC zisnJUUPOY?asU7$YGCt`FO&%<2&7TdL4d4sLkrZZwGy7J*Cm$=sBj-r@H!kavm1M! z_mh1$^M0bnPFVa~v7jYSt{F%QNPWVgCM_-H^MH7^-?-E{ zjf+$5H9*igMsqovRnMf@zOmNO{8q_GW`IURM_Ft}gA}U<0j;!ZLOr@C@L@+8KbHAQ z$rWVhd^;sx^Y3T!4ktV7LJ_JJi6_vNRr0a@{gd`XRv&`jx|K-6sYNQA&w&lDaGKX8 zp?$duF)6iT3O^kjs8+0CUZ%Fk#@>$h_Ie?GVjE0>YF@no9-5A)JQi~ zXlg z#=^oz-i&COni{m=E5jaP%twT#>)tR(UBtw&VJ&3T++VO$bRgG08;XGfwf`R&XuC!L z004La49P=a9#9Yj;F3JM z6;K#LUsp*GWl-NXLKEA}k7$7&wiia&F_>m&V7Xn1wRSyr*j>11AK-<3g?IJ?3hgia z107{;c~-VnS}Za&6FA9E=Qnow|#k}$Dp3+ zndet}1?i36gZiqkHd2u`N>ToeQLIf;lFd*Cf&m5y2FeEh*Gv{idjmlbZLyh|nXf(@ zLU43nI1b}yHZzH(_8Y^hdTNK>Qt1{im>}sGx`rMoRhk{oPD|O@?6L}_R9?xhOUyEQ z{%6YUCjE!$SG+j(5|%BzRE(#5S_BOz@q`$Xzeg=9ysD$#)y;@93Pc7kc6HCobmsVj zTW{0dlRw~D6|6G2{uME1bb2OwAP8|D52~;`Itn58PdBKBdc>{7OvEetN9q#1eKxa` z{zwf~u#Qs6X<`L;Ds618BYNo0CYtIXnMS3~6F=uZXcB&?@DCMyu}TB!HqpaWd`Gnh z)QWr5ekHJHTZuRQUT6FTzm9YIC$YgFbt?WSo3*px#@V6|Rh&3MnR2)-^dYi*r5=0F zqxR_-XW8!&?n$h@qub1nlM%|?(>GC*DM8#gO8o*2P>%Xn><@aU!<_mEUJW<6G@*ZE} zeszlc9oIUAF5@3%orF913jaB=g5HGe>)#f!N9A|{Op^t0Tt^ayzki;!Cq1op*H0@5 znNeImGt11(%uXT*Gcz+YGc$8yI%ej}F*ECCTJo#xRQGhhrmt#x5fIbKt%}U5S*&C`i`mKh zY~n-q`uhERk$3qr-)0}*<>!2fUrKyWk(Tf`eNR8r4E@`mMQ)@!PK(_M?gU-s9(GUY zYWI|TS~t4q+)KLIz2&~4JKVS2clEOSzWb$KcYlqX_C&p-{`zV(F#5DU#(jcO#wcTy zG0GTaj507J%F3+9gM6DFziG#0zg0_NWfjqN!SXNLpobm3=>|ZQWZjnJQ>HPlJf7qE*YaN~^U-Yqee*v{75MRok>(yR=(J zt4;0d(CIouXX-4St#fp~F4kqbTvzByU90PLgKpGKx>dL7cHN=7bhqx&{dzzT>LER> z$Muw+(X)C>@9I6huMhN*_Up6yvc96P>TCMCzCmm5cu)b9vD+m6M|rMnP`m0&NPl<&)K^Q|+7Yd$33D%G{lL z8T2IBy$5o8a^EfgRqngtb~7M|z7F~!=vPp6qo4C+?&bU}2vX5ru`S!_?JQ)^_A(Om zFBgYAcc}MgVC=5Wjr6^&KGYFuR&;gz&5B*Ya(m*>+qWU%e}h@k)x;HZfI;@gqb*`q z`r36CIXvBl`tDs#{RZ>v-JZ%nVHRXBHLD@b8E~%oY0rV?x41nO-CMrceVbzOQnM1` z;xM4aa=QImV1)UN?%QP}iet@6C|3Rt`{r}z0b?y^NvNs(DbQ;E*mUl+ZVroo2uwGB zpi6ScR=()1A-J+{Tkhm;A& zWxj)!K;OVOjMK<6$d29{Dj}>bNo)~=o|bl^O;N!gnpqvSQddt5Mc*XU&ng5HMppf6=t590n(@~=A1c_;D+sC z2boWHkkm0RlGlk;_ac8}IE&{=1?Q8(G&_e&*g4^r1I$ITb{LT+qP|co^6}gw(a|_ZQHiGYwGkWzgpDS^{;j(-EnuY@E5_L zvRkd!G2BlSv;?NcIQHM2(}lZ(@(ke_K0Z@;o{!HG9u)pENJ+_T;ep`+OL<_9Wtdx~ zGEa%BMV#C_i$N-Ps`V;ef6VWIg%Y_p`~`K(3eNK_w@YpYKuerg&qo#|k*|wHxp}~1 z$NbXPack-^8yRXNcjbl<@;9HeOmZfH@^ax0Hs`|B$R>1hvOb+Yo7PmfwkFZS!2t&0Js#T;{QuP)pl zlv^ch8r-5;%_S?HlzLT#upc|~687==+IynEaO_T86AOFgTD=)Q7Iup6P_Je5H|w1i zh zGHi-f6}%*>URC$G)W0CPWt=r>EeoohM!6tGpeGN>IK$X@8zxB?g)^<&1w@+v3G1D^J(s^GOP2=?S)|(zY zMj`9!t**VYWm3<{z=0SSalK0a4rr_U&*o&FaGuZUBstrFzKKS1mH_>P7XbxyuEUm@ zF|JHB1As%KX=VHOtIQ(xevsKGd*U(3Z1LU@H!d69lUbnNrc8(A1z-+ItsUIFX9A$( zai?-;!Vp}jd#g5e(^oqWRI@)u>m8E*Oub&|+pSk&y$R`;)Ekz*I9VUfEW}`>Ejd}i z25=q(%Sg^hZ9CR!KqqOTfp4+1o(k8OZqDs&bHpMciM=@;dXoadFd67X%|dOrRgU8$dH$@ddx7})xbe)rVIFo8K3Ojsl!%V35B%UMks-?tWV9v6_~ zNuH&KF{X?<_I>g#8k+uQFpb6){fuuJ1Y4Df20F{w$_P% za2lQE71*CUc#u)1+~k>JTA6;#w__N>Rx`{DXPX&m#<0VTH{;o3CYvej#mG19em*H> zCR4&1o?yjNrrAk+PD$%#)|9Ye=1>XyMM?WdNjtlw&5_!DeNIOh^zb`;Y>eglp2rDi zoQL(yPkiKuvE!#b|H!iZ5}+$S*)sfC@>_e=c*(k$hN_w%s)?fN;#HGG^@-=7NId2F zr^3}d|IG67yJ-lsWH;3(Ag!nG`_{_j+?C6@%gVW{A?L1+oV&Vu;zFKrp8~-c;Eyph zVuV@``*()575qhQ2j4@@(&=iK>!(#D{r-iFsG(!?0r2x=UWH!(et8r>0Q^ey{}a9u z_>J(qV2#e(Z!N>`r1V#!`Umi9;lBv~0{Fe~pM?(rf3RFm9z%qYnW~SWDKiK#VZoj} zFwP?d)YiWZfwmaa0lA<1S#K(}FZ0~YvLTh+0e_5fW|S(FiyWmB8C7)BF%-n08L_iyaI@PX0k^0EkiBYn-Ps|&Jg|H$1)7iem$o8 z2BPmRrGb>XS{n+dysD9?y2gA1y=Y^8004LajM4*a1qmF);hFzF)#jmWjHd#D@07ChilML(X8CnsMvy+?6BNi) zCucXqQPb0Ni#TEZrO9cWHoMUVlQ?H~VR{yq{AaKFLvL_<+rrY!Jnq?aqxtpm$flc? zmE$S30cdr=0gZk)A5g#(Hh#*~6Rao$~JHy&!Nw;JUzLf%if@AtfO_p`Os>(6Z10 zIKNy=+Yi&Y4-ernJcZ}*5?;ewcn=@p3w(ngX!J3ZcQBH%Ok^sTX9javz!Fxlh7D|C z4~ICxRk=3T=PZ}F6?fon+>871ARfkJcmhx189a{{@iJb;8+eQEb`KxmBYc9-@CClY zH~0=e;1~SP%mNl^@s?_7mSaU$W>r>aP1a^z)@MUDW-HpNwx+FXGq$14+M;b{TiJHD zlkH}EfgA^MupA?ixn0Wchh!?g~QBjiYFklkeuIZF1Fy<~6MMLd|2Pn$IdYEMPU;U@T;fTEtqln00Ci>(x>=fNYlz>69)Q z9%i>zkMv3(3{SCNt5KSy8OBVuXthd~OvnI;A3=I$P=;h!Mr2gR;F#ZH_$~B3TdW#l zacZc=t6`R)hFhWCsD@cV@f|!QEk9aJH<&ljX&AuVGtu&6{}%&tbui~K4!5c zw#TkG5GUY7oP?8c3QomoI2~u;Oq_*_a5b*M9qvE;r?$!g# znBzWTHiZ&*E^X+}YPNeuC;GcHy&24CCfi?RTIt>WJFr>=)<}W1$^siO3ic0SgJ?@v zS+XqbvQV4cyKU*+Ce5$b>fMv5ZZsLj=n3ZD9j418gejp>6$V}$5R6{95T}2He3moBCbQf{vdG&1MQbb4S>ry%X6Gmy*9#3M(H{tRb4(<8$#o#W9z)m`>}OC;VWH38!gb5psOjQ_w_{8PB&ACoQt|AswnD;^nY_@ z%IT`Wa$QFj9yg@E+?1-lCFOi;V7YFOYPaZ)z%t$C_^Ipf#?k5WsO4JZQErTm+!ph? zGbR;%VK5^Z&s05>eD4jP`;Z>h{o(UK_&ive?!!ox7+qsuF3=*a&`S5&GiF)zOg;_$ zu5anGRy)o!alDtup_TmLkXKOiANjP9@5=!>x#;PdtGJqLxR&dukMku#L9KHrp24YTInP zR%?ycYMs_=gEnfDHfN)<(b>$naFa^+ZDL%tt+@;K(EnVkAM>|q_d66f$1hH+s)k~i zRbX_-=m;S-Cwb&AO15&HSjbnQS&-Ajb+H|`)BJ}~h&^~OE&l>0;q(`H0Zodv6#_v3 zME~sKZaErW0hBHOz6o*a=wfh8txO1xk3- zY0zT8h7&#lkeI+XTdpn#jM^nasUV(f%*)S z000000RR91000313BUlr0M%91RqCtis{jB101V9x%^8{*nkHr@W-~K0Ge7`90002Q CLkb=M literal 0 HcmV?d00001 diff --git a/Multi Sig Wallet/Frontend/app/fonts/GeistVF.woff b/Multi Sig Wallet/Frontend/app/fonts/GeistVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..1b62daacff96dad6584e71cd962051b82957c313 GIT binary patch literal 66268 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 >-Aun5A4Gp>4U0IQJ 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 G)cz05(PHWV literal 0 HcmV?d00001 diff --git a/Multi Sig Wallet/Frontend/app/globals.css b/Multi Sig Wallet/Frontend/app/globals.css new file mode 100644 index 00000000..942f8719 --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/globals.css @@ -0,0 +1,72 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + font-family: Arial, Helvetica, sans-serif; +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/Multi Sig Wallet/Frontend/app/layout.tsx b/Multi Sig Wallet/Frontend/app/layout.tsx new file mode 100644 index 00000000..a36cde01 --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/layout.tsx @@ -0,0 +1,35 @@ +import type { Metadata } from "next"; +import localFont from "next/font/local"; +import "./globals.css"; + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/Multi Sig Wallet/Frontend/app/page.tsx b/Multi Sig Wallet/Frontend/app/page.tsx new file mode 100644 index 00000000..9007252c --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/page.tsx @@ -0,0 +1,101 @@ +import Image from "next/image"; + +export default function Home() { + return ( + + ); +} diff --git a/Multi Sig Wallet/Frontend/components.json b/Multi Sig Wallet/Frontend/components.json new file mode 100644 index 00000000..a3128650 --- /dev/null +++ b/Multi Sig Wallet/Frontend/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "app/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/lib/utils.ts b/Multi Sig Wallet/Frontend/lib/utils.ts new file mode 100644 index 00000000..bd0c391d --- /dev/null +++ b/Multi Sig Wallet/Frontend/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/Multi Sig Wallet/Frontend/next.config.ts b/Multi Sig Wallet/Frontend/next.config.ts new file mode 100644 index 00000000..e9ffa308 --- /dev/null +++ b/Multi Sig Wallet/Frontend/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + /* config options here */ +}; + +export default nextConfig; diff --git a/Multi Sig Wallet/Frontend/package-lock.json b/Multi Sig Wallet/Frontend/package-lock.json new file mode 100644 index 00000000..64574433 --- /dev/null +++ b/Multi Sig Wallet/Frontend/package-lock.json @@ -0,0 +1,5678 @@ +{ + "name": "reusable", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "reusable", + "version": "0.1.0", + "dependencies": { + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "next": "15.0.2", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "15.0.2", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", + "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz", + "integrity": "sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz", + "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz", + "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz", + "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz", + "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz", + "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz", + "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz", + "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz", + "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", + "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/type-utils": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", + "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", + "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", + "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", + "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", + "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", + "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", + "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001677", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", + "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.2.tgz", + "integrity": "sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "15.0.2", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/eslint-import-resolver-typescript/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz", + "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/lucide-react": { + "version": "0.454.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz", + "integrity": "sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz", + "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.0.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.18.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.0.2", + "@next/swc-darwin-x64": "15.0.2", + "@next/swc-linux-arm64-gnu": "15.0.2", + "@next/swc-linux-arm64-musl": "15.0.2", + "@next/swc-linux-x64-gnu": "15.0.2", + "@next/swc-linux-x64-musl": "15.0.2", + "@next/swc-win32-arm64-msvc": "15.0.2", + "@next/swc-win32-x64-msvc": "15.0.2", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.0.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-GbZ7hpPHQMiEu53BqEaPQVM/4GG4hARo+mqEEnx4rYporDvNvUjutiAFxYFSbu6sgHwcr7LeFv8htEOwALVA2A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-LrZf3DfHL6Fs07wwlUCHrzFTCMM19yA99MvJpfLokN4I2nBAZvREGZjZAn8VPiSfN72+i9j1eL4wB8gC695F3Q==", + "license": "MIT", + "dependencies": { + "scheduler": "0.25.0-rc-02c0e824-20241028" + }, + "peerDependencies": { + "react": "19.0.0-rc-02c0e824-20241028" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.25.0-rc-02c0e824-20241028", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-02c0e824-20241028.tgz", + "integrity": "sha512-GysnKjmMSaWcwsKTLzeJO0IhU3EyIiC0ivJKE6yDNLqt3IMxDByx8b6lSNXRNdN+ULUY0WLLjSPaZ0LuU/GnTg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Multi Sig Wallet/Frontend/package.json b/Multi Sig Wallet/Frontend/package.json new file mode 100644 index 00000000..03d095d4 --- /dev/null +++ b/Multi Sig Wallet/Frontend/package.json @@ -0,0 +1,31 @@ +{ + "name": "reusable", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "next": "15.0.2", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "15.0.2", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} diff --git a/Multi Sig Wallet/Frontend/postcss.config.mjs b/Multi Sig Wallet/Frontend/postcss.config.mjs new file mode 100644 index 00000000..1a69fd2a --- /dev/null +++ b/Multi Sig Wallet/Frontend/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/Multi Sig Wallet/Frontend/public/file.svg b/Multi Sig Wallet/Frontend/public/file.svg new file mode 100644 index 00000000..004145cd --- /dev/null +++ b/Multi Sig Wallet/Frontend/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/public/globe.svg b/Multi Sig Wallet/Frontend/public/globe.svg new file mode 100644 index 00000000..567f17b0 --- /dev/null +++ b/Multi Sig Wallet/Frontend/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/public/next.svg b/Multi Sig Wallet/Frontend/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/Multi Sig Wallet/Frontend/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/public/vercel.svg b/Multi Sig Wallet/Frontend/public/vercel.svg new file mode 100644 index 00000000..77053960 --- /dev/null +++ b/Multi Sig Wallet/Frontend/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/public/window.svg b/Multi Sig Wallet/Frontend/public/window.svg new file mode 100644 index 00000000..b2b2a44f --- /dev/null +++ b/Multi Sig Wallet/Frontend/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/tailwind.config.ts b/Multi Sig Wallet/Frontend/tailwind.config.ts new file mode 100644 index 00000000..ebc9f38b --- /dev/null +++ b/Multi Sig Wallet/Frontend/tailwind.config.ts @@ -0,0 +1,63 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + darkMode: ["class"], + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))' + } + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + } + } + }, + plugins: [require("tailwindcss-animate")], +}; +export default config; diff --git a/Multi Sig Wallet/Frontend/tsconfig.json b/Multi Sig Wallet/Frontend/tsconfig.json new file mode 100644 index 00000000..d8b93235 --- /dev/null +++ b/Multi Sig Wallet/Frontend/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From 0fcb50a94b1decdedf9a3ce5e3579d594c34e70e Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sat, 11 Jan 2025 18:13:38 +0100 Subject: [PATCH 06/11] multisig frontend --- Multi Sig Wallet/Frontend/app/client.ts | 6 + Multi Sig Wallet/Frontend/app/create/page.tsx | 130 + .../Frontend/app/dashboard/page.tsx | 70 + Multi Sig Wallet/Frontend/app/globals.css | 106 +- Multi Sig Wallet/Frontend/app/layout.tsx | 41 +- Multi Sig Wallet/Frontend/app/owners/page.tsx | 108 + Multi Sig Wallet/Frontend/app/page.tsx | 154 +- .../Frontend/app/wallet/[address]/page.tsx | 138 + .../Frontend/components/DashboardLayout.tsx | 48 + .../Frontend/components/ui/button.tsx | 57 + .../Frontend/components/ui/card.tsx | 76 + .../Frontend/components/ui/dialog.tsx | 122 + .../Frontend/components/ui/input.tsx | 22 + .../Frontend/components/ui/label.tsx | 26 + .../Frontend/components/ui/table.tsx | 120 + Multi Sig Wallet/Frontend/package-lock.json | 5246 ++++++++++++++--- Multi Sig Wallet/Frontend/package.json | 7 +- Multi Sig Wallet/Frontend/public/banner.jpg | Bin 0 -> 489704 bytes Multi Sig Wallet/Frontend/public/multisig.jpg | Bin 0 -> 278676 bytes Multi Sig Wallet/Frontend/tailwind.config.js | 44 + Multi Sig Wallet/Frontend/tailwind.config.ts | 3 + 21 files changed, 5642 insertions(+), 882 deletions(-) create mode 100644 Multi Sig Wallet/Frontend/app/client.ts create mode 100644 Multi Sig Wallet/Frontend/app/create/page.tsx create mode 100644 Multi Sig Wallet/Frontend/app/dashboard/page.tsx create mode 100644 Multi Sig Wallet/Frontend/app/owners/page.tsx create mode 100644 Multi Sig Wallet/Frontend/app/wallet/[address]/page.tsx create mode 100644 Multi Sig Wallet/Frontend/components/DashboardLayout.tsx create mode 100644 Multi Sig Wallet/Frontend/components/ui/button.tsx create mode 100644 Multi Sig Wallet/Frontend/components/ui/card.tsx create mode 100644 Multi Sig Wallet/Frontend/components/ui/dialog.tsx create mode 100644 Multi Sig Wallet/Frontend/components/ui/input.tsx create mode 100644 Multi Sig Wallet/Frontend/components/ui/label.tsx create mode 100644 Multi Sig Wallet/Frontend/components/ui/table.tsx create mode 100644 Multi Sig Wallet/Frontend/public/banner.jpg create mode 100644 Multi Sig Wallet/Frontend/public/multisig.jpg create mode 100644 Multi Sig Wallet/Frontend/tailwind.config.js diff --git a/Multi Sig Wallet/Frontend/app/client.ts b/Multi Sig Wallet/Frontend/app/client.ts new file mode 100644 index 00000000..2d44cecd --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/client.ts @@ -0,0 +1,6 @@ +// src/client.ts +import { createThirdwebClient } from "thirdweb"; + +export const client = createThirdwebClient({ + clientId: process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID as string, +}); diff --git a/Multi Sig Wallet/Frontend/app/create/page.tsx b/Multi Sig Wallet/Frontend/app/create/page.tsx new file mode 100644 index 00000000..50bdfd2f --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/create/page.tsx @@ -0,0 +1,130 @@ +'use client' + +import { useState } from 'react' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' +import { Loader2 } from 'lucide-react' + +export default function CreateMultiSigWallet() { + const [name, setName] = useState('') + const [owners, setOwners] = useState(['']) + const [requiredConfirmations, setRequiredConfirmations] = useState(1) + const [isCreating, setIsCreating] = useState(false) + + const handleAddOwner = () => { + setOwners([...owners, '']) + } + + const handleOwnerChange = (index: number, value: string) => { + const newOwners = [...owners] + newOwners[index] = value + setOwners(newOwners) + } + + const handleRemoveOwner = (index: number) => { + const newOwners = owners.filter((_, i) => i !== index) + setOwners(newOwners) + } + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault() + setIsCreating(true) + // Simulating wallet creation + setTimeout(() => { + console.log('Wallet created:', { name, owners, requiredConfirmations }) + setIsCreating(false) + // Here you would typically redirect to the new wallet page or show a success message + }, 2000) + } + + return ( +
+ + + Create Multi-Signature Wallet + + Set up a new multi-signature wallet by providing the required information + + + +
+
+ + setName(e.target.value)} + className="bg-blue-700 border-blue-600 text-white" + required + /> +
+
+ + {owners.map((owner, index) => ( +
+ handleOwnerChange(index, e.target.value)} + placeholder={`Owner ${index + 1} address`} + className="bg-blue-700 border-blue-600 text-white flex-grow" + required + /> + {index > 0 && ( + + )} +
+ ))} + +
+
+ + setRequiredConfirmations(parseInt(e.target.value))} + className="bg-blue-700 border-blue-600 text-white" + required + /> +
+ +
+
+
+
+ ) +} + diff --git a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx new file mode 100644 index 00000000..e730ea45 --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx @@ -0,0 +1,70 @@ +'use client' + +import { useState } from 'react' +import { Search } from 'lucide-react' +import { Input } from '@/components/ui/input' +import { Button } from '@/components/ui/button' +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' +import { DashboardLayout } from '@/components/DashboardLayout' +import Link from 'next/link' + +// Mock data for wallets +const wallets = [ + { address: '0x1234...5678', createdAt: 'January 10, 2025', balance: '10.5 ETH' }, + { address: '0xabcd...efgh', createdAt: 'February 15, 2025', balance: '5.2 ETH' }, + { address: '0x9876...5432', createdAt: 'March 20, 2025', balance: '15.8 ETH' }, +] + +export default function Dashboard() { + const [search, setSearch] = useState('') + + const filteredWallets = wallets.filter(wallet => + wallet.address.toLowerCase().includes(search.toLowerCase()) + ) + + return ( + +
+

Wallet Dashboard

+ +
+ +
+

Connected Wallet:

+

0x7890...1234

+
+
+
+ setSearch(e.target.value)} + className="mr-4 bg-blue-800 border-blue-700 text-white placeholder-gray-400" + /> + +
+
+ {filteredWallets.map((wallet, index) => ( + + + {wallet.address} + + +

Created on: {wallet.createdAt}

+

Balance: {wallet.balance}

+
+
+ ))} +
+
+
+ ) +} + diff --git a/Multi Sig Wallet/Frontend/app/globals.css b/Multi Sig Wallet/Frontend/app/globals.css index 942f8719..9638540b 100644 --- a/Multi Sig Wallet/Frontend/app/globals.css +++ b/Multi Sig Wallet/Frontend/app/globals.css @@ -2,63 +2,39 @@ @tailwind components; @tailwind utilities; -body { - font-family: Arial, Helvetica, sans-serif; +@layer utilities { + .border-border { + } + .bg-background { + } + + .text-foreground{} } + + @layer base { :root { - --background: 0 0% 100%; - --foreground: 240 10% 3.9%; - --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; - --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 10% 3.9%; - --chart-1: 12 76% 61%; - --chart-2: 173 58% 39%; - --chart-3: 197 37% 24%; - --chart-4: 43 74% 66%; - --chart-5: 27 87% 67%; - --radius: 0.5rem; - } - .dark { - --background: 240 10% 3.9%; - --foreground: 0 0% 98%; - --card: 240 10% 3.9%; - --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; - --popover-foreground: 0 0% 98%; - --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; - --accent-foreground: 0 0% 98%; + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + --primary: 217.2 91.2% 59.8%; + --primary-foreground: 222.2 47.4% 11.2%; + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; - --chart-1: 220 70% 50%; - --chart-2: 160 60% 45%; - --chart-3: 30 80% 55%; - --chart-4: 280 65% 60%; - --chart-5: 340 75% 55%; + --destructive-foreground: 210 40% 98%; + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 224.3 76.3% 48%; + --radius: 0.5rem; } } @@ -70,3 +46,29 @@ body { @apply bg-background text-foreground; } } + +.animate-fade-in { + animation: fadeIn 0.5s ease-out; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +.animation-delay-200 { + animation-delay: 200ms; +} + +.animation-delay-400 { + animation-delay: 400ms; +} + +.animation-delay-600 { + animation-delay: 600ms; +} + diff --git a/Multi Sig Wallet/Frontend/app/layout.tsx b/Multi Sig Wallet/Frontend/app/layout.tsx index a36cde01..da5a97ec 100644 --- a/Multi Sig Wallet/Frontend/app/layout.tsx +++ b/Multi Sig Wallet/Frontend/app/layout.tsx @@ -1,35 +1,30 @@ -import type { Metadata } from "next"; -import localFont from "next/font/local"; -import "./globals.css"; +import './globals.css' +import type { Metadata } from 'next' +import { Inter } from 'next/font/google' +import Link from 'next/link' +import { ThirdwebProvider } from 'thirdweb/react' -const geistSans = localFont({ - src: "./fonts/GeistVF.woff", - variable: "--font-geist-sans", - weight: "100 900", -}); -const geistMono = localFont({ - src: "./fonts/GeistMonoVF.woff", - variable: "--font-geist-mono", - weight: "100 900", -}); +const inter = Inter({ subsets: ['latin'] }) export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", -}; + title: 'MultiSig Wallet', + description: 'Secure your digital assets with multi-signature protection', +} + export default function RootLayout({ children, -}: Readonly<{ - children: React.ReactNode; -}>) { +}: { + children: React.ReactNode +}) { return ( + - + {children} - ); + + ) } + diff --git a/Multi Sig Wallet/Frontend/app/owners/page.tsx b/Multi Sig Wallet/Frontend/app/owners/page.tsx new file mode 100644 index 00000000..5c0fc590 --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/owners/page.tsx @@ -0,0 +1,108 @@ +'use client' + +import { useState } from 'react' +import { DashboardLayout } from '@/components/DashboardLayout' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table' +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@/components/ui/dialog' + +// Mock data for owners +const initialOwners = [ + { address: '0x1234...5678', name: 'Alice' }, + { address: '0xabcd...efgh', name: 'Bob' }, + { address: '0x9876...5432', name: 'Charlie' }, +] + +export default function OwnersPage() { + const [owners, setOwners] = useState(initialOwners) + const [isOpen, setIsOpen] = useState(false) + const [newOwnerAddress, setNewOwnerAddress] = useState('') + const [newOwnerName, setNewOwnerName] = useState('') + + const handleAddOwner = (e: React.FormEvent) => { + e.preventDefault() + if (newOwnerAddress && newOwnerName) { + setOwners([...owners, { address: newOwnerAddress, name: newOwnerName }]) + setNewOwnerAddress('') + setNewOwnerName('') + setIsOpen(false) + } + } + + return ( + +

Manage Owners

+ +
+ + + + + + + Add New Owner + +
+
+ + setNewOwnerAddress(e.target.value)} + className="bg-blue-800 border-blue-700 text-white" + /> +
+
+ + setNewOwnerName(e.target.value)} + className="bg-blue-800 border-blue-700 text-white" + /> +
+ +
+
+
+
+ + + + + Owner Address + Name + Actions + + + + {owners.map((owner, index) => ( + + {owner.address} + {owner.name} + + + + + ))} + +
+
+ ) +} + diff --git a/Multi Sig Wallet/Frontend/app/page.tsx b/Multi Sig Wallet/Frontend/app/page.tsx index 9007252c..f160ac19 100644 --- a/Multi Sig Wallet/Frontend/app/page.tsx +++ b/Multi Sig Wallet/Frontend/app/page.tsx @@ -1,101 +1,73 @@ -import Image from "next/image"; +import Image from 'next/image' +import Link from 'next/link' +import { Shield, FileText, Key } from 'lucide-react' +import { client } from "./client"; +import { ConnectButton } from "thirdweb/react"; + +import { Button } from '@/components/ui/button' export default function Home() { return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{" "} - - app/page.tsx - - . -
  2. -
  3. Save and see your changes instantly.
  4. -
+
+
+ +
- + + +
+

Our Features

+
+
+ +

Create Multi-Sig Wallet

+

Secure your assets with multiple signatures for enhanced protection.

+
+
+ +

Manage Transactions

+

Easily submit, confirm, and track all your wallet transactions.

+
+
+ +

Connect Securely

+

Use your preferred wallet to connect and interact securely.

+
+
+
-
- ); + ) } + diff --git a/Multi Sig Wallet/Frontend/app/wallet/[address]/page.tsx b/Multi Sig Wallet/Frontend/app/wallet/[address]/page.tsx new file mode 100644 index 00000000..7a6f90bd --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/wallet/[address]/page.tsx @@ -0,0 +1,138 @@ +'use client' + +import { useState } from 'react' +import { Button } from '@/components/ui/button' +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table' +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@/components/ui/dialog' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { DashboardLayout } from '@/components/DashboardLayout' +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' +import { AlertCircle, CheckCircle, XCircle } from 'lucide-react' + +// Mock data for transactions +const transactions = [ + { id: '1', recipient: '0x1234...5678', value: '1.5', status: 'Pending', confirmations: 1 }, + { id: '2', recipient: '0xabcd...efgh', value: '0.5', status: 'Executed', confirmations: 3 }, + { id: '3', recipient: '0x9876...5432', value: '2.0', status: 'Rejected', confirmations: 2 }, +] + +export default function WalletPage({ params }: { params: { address: string } }) { + const [isOpen, setIsOpen] = useState(false) + + const getStatusIcon = (status: string) => { + switch (status) { + case 'Pending': + return + case 'Executed': + return + case 'Rejected': + return + default: + return null + } + } + + return ( + +

Wallet: {params.address}

+ +
+ + + Balance + + +

25.5 ETH

+
+
+ + + Owners + + +

3/5

+
+
+ + + Pending Transactions + + +

2

+
+
+
+ +
+ + + + + + + Submit Transaction + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ + +
+ + + + + Transaction ID + Recipient Address + Value (ETH) + Status + Confirmations + + + + {transactions.map((tx) => ( + + {tx.id} + {tx.recipient} + {tx.value} + + {getStatusIcon(tx.status)} + {tx.status} + + {tx.confirmations} + + ))} + +
+
+ ) +} + diff --git a/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx b/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx new file mode 100644 index 00000000..fcf4da97 --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx @@ -0,0 +1,48 @@ +import Link from 'next/link' +import { Home, FileText, Users, Settings } from 'lucide-react' + +interface DashboardLayoutProps { + children: React.ReactNode +} + +export function DashboardLayout({ children }: DashboardLayoutProps) { + return ( +
+ +
+ {children} +
+
+ ) +} + diff --git a/Multi Sig Wallet/Frontend/components/ui/button.tsx b/Multi Sig Wallet/Frontend/components/ui/button.tsx new file mode 100644 index 00000000..65d4fcd9 --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/Multi Sig Wallet/Frontend/components/ui/card.tsx b/Multi Sig Wallet/Frontend/components/ui/card.tsx new file mode 100644 index 00000000..cabfbfc5 --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/ui/card.tsx @@ -0,0 +1,76 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/Multi Sig Wallet/Frontend/components/ui/dialog.tsx b/Multi Sig Wallet/Frontend/components/ui/dialog.tsx new file mode 100644 index 00000000..1647513e --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/ui/dialog.tsx @@ -0,0 +1,122 @@ +"use client" + +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/Multi Sig Wallet/Frontend/components/ui/input.tsx b/Multi Sig Wallet/Frontend/components/ui/input.tsx new file mode 100644 index 00000000..69b64fb2 --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/Multi Sig Wallet/Frontend/components/ui/label.tsx b/Multi Sig Wallet/Frontend/components/ui/label.tsx new file mode 100644 index 00000000..53418217 --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/ui/label.tsx @@ -0,0 +1,26 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/Multi Sig Wallet/Frontend/components/ui/table.tsx b/Multi Sig Wallet/Frontend/components/ui/table.tsx new file mode 100644 index 00000000..c0df655c --- /dev/null +++ b/Multi Sig Wallet/Frontend/components/ui/table.tsx @@ -0,0 +1,120 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Table = React.forwardRef< + HTMLTableElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+ + +)) +Table.displayName = "Table" + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableHeader.displayName = "TableHeader" + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableBody.displayName = "TableBody" + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + tr]:last:border-b-0", + className + )} + {...props} + /> +)) +TableFooter.displayName = "TableFooter" + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableRow.displayName = "TableRow" + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
[role=checkbox]]:translate-y-[2px]", + className + )} + {...props} + /> +)) +TableHead.displayName = "TableHead" + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + [role=checkbox]]:translate-y-[2px]", + className + )} + {...props} + /> +)) +TableCell.displayName = "TableCell" + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +TableCaption.displayName = "TableCaption" + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/Multi Sig Wallet/Frontend/package-lock.json b/Multi Sig Wallet/Frontend/package-lock.json index 64574433..fb8b017b 100644 --- a/Multi Sig Wallet/Frontend/package-lock.json +++ b/Multi Sig Wallet/Frontend/package-lock.json @@ -8,14 +8,19 @@ "name": "reusable", "version": "0.1.0", "dependencies": { + "@radix-ui/react-dialog": "^1.1.4", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-slot": "^1.1.1", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "dotenv": "^16.4.7", "lucide-react": "^0.454.0", "next": "15.0.2", "react": "19.0.0-rc-02c0e824-20241028", "react-dom": "19.0.0-rc-02c0e824-20241028", "tailwind-merge": "^2.5.4", - "tailwindcss-animate": "^1.0.7" + "tailwindcss-animate": "^1.0.7", + "thirdweb": "^5.83.1" }, "devDependencies": { "@types/node": "^20", @@ -28,10 +33,17 @@ "typescript": "^5" } }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -40,6 +52,169 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@coinbase/wallet-sdk": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.2.4.tgz", + "integrity": "sha512-wJ9QOXOhRdGermKAoJSr4JgGqZm/Um0m+ecywzEC9qSOu3TXuVcG3k0XXTXW11UBgjdoPRuf5kAwRX3T9BynFA==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "^1.4.0", + "clsx": "^1.2.1", + "eventemitter3": "^5.0.1", + "preact": "^10.24.2" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@emnapi/runtime": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", @@ -50,6 +225,152 @@ "tslib": "^2.4.0" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", + "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", @@ -113,102 +434,539 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.4" + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.4" + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0" } }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } ], - "funding": { - "url": "https://opencollective.com/libvips" + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@google/model-viewer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-2.1.1.tgz", + "integrity": "sha512-5umyLoD5vMxlSVQwtmUXeNCNWs9dzmWykGm1qrHe/pCYrj/1lyJIgJRw+IxoMNodGqtcHEtfDhdNjRDM9yo/TA==", + "license": "Apache-2.0", + "dependencies": { + "lit": "^2.2.3", + "three": "^0.146.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-x64": { @@ -516,6 +1274,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -533,6 +1292,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -545,6 +1305,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -604,12 +1365,112 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@next/env": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", - "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==", - "license": "MIT" - }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz", + "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/@motionone/animation": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz", + "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==", + "license": "MIT", + "dependencies": { + "@motionone/easing": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/dom": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz", + "integrity": "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A==", + "license": "MIT", + "dependencies": { + "@motionone/animation": "^10.18.0", + "@motionone/generators": "^10.18.0", + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/easing": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz", + "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==", + "license": "MIT", + "dependencies": { + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/generators": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz", + "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==", + "license": "MIT", + "dependencies": { + "@motionone/types": "^10.17.1", + "@motionone/utils": "^10.18.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/svelte": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", + "integrity": "sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==", + "license": "MIT", + "dependencies": { + "@motionone/dom": "^10.16.4", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/types": { + "version": "10.17.1", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz", + "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==", + "license": "MIT" + }, + "node_modules/@motionone/utils": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz", + "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==", + "license": "MIT", + "dependencies": { + "@motionone/types": "^10.17.1", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/@motionone/vue": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", + "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==", + "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion", + "license": "MIT", + "dependencies": { + "@motionone/dom": "^10.16.4", + "tslib": "^2.3.1" + } + }, + "node_modules/@next/env": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", + "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==", + "license": "MIT" + }, "node_modules/@next/eslint-plugin-next": { "version": "15.0.2", "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz", @@ -748,10 +1609,50 @@ "node": ">= 10" } }, + "node_modules/@noble/curves": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", + "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", + "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz", + "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -765,6 +1666,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -774,6 +1676,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -793,691 +1696,1955 @@ "node": ">=12.4.0" } }, + "node_modules/@passwordless-id/webauthn": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@passwordless-id/webauthn/-/webauthn-2.1.2.tgz", + "integrity": "sha512-Ahj+A3O0gP3EsLV4FRXjfhbzzP895d8CnHKmhT1hkAz1zLSBCRE/iXJsasL1kwGoriDFLJ+YtO6x1rok4SZH2g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/passwordless-id" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", - "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", "license": "MIT" }, - "node_modules/@types/node": { - "version": "20.17.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", - "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", - "dev": true, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", - "dev": true, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", - "dev": true, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", - "dependencies": { - "@types/react": "*" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", - "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/type-utils": "8.13.0", - "@typescript-eslint/utils": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz", + "integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@typescript-eslint/parser": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", - "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz", + "integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", - "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", - "dev": true, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", - "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", - "dev": true, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/utils": "8.13.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@typescript-eslint/types": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", - "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", - "dev": true, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz", + "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", - "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { "optional": true } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, + "node_modules/@radix-ui/react-label": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", + "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" }, - "engines": { - "node": ">=8.6.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", + "node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", - "dev": true, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0" + "@radix-ui/react-slot": "1.1.1" }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", - "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", - "dev": true, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.5.tgz", + "integrity": "sha512-IucoQPcK5nwUuztaxBQvudvYwH58wtRcJlv1qvaMSyIbL9dEBfFN0vRf/D8xDbu6HmAJLlNGty4z8Na+vIqe9Q==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.13.0", - "eslint-visitor-keys": "^3.4.3" + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.2", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1" }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "license": "ISC" + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.2.tgz", + "integrity": "sha512-kEHnlhv7wUggvhuJPkyw4qspXLJOdYoAP4dO2c8ngGuXTq1w/HZp1YeVB+NQ2KbH1iEG+pvOCGYSqh9HZOz6hg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=0.4.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@radix-ui/react-use-callback-ref": "1.1.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", "license": "MIT", - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@radix-ui/rect": "1.1.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz", + "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", "license": "MIT" }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "dev": true, - "license": "Python-2.0" + "license": "MIT" }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" + "license": "MIT" + }, + "node_modules/@scure/base": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", + "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, + "node_modules/@scure/bip32": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.1.tgz", + "integrity": "sha512-jSO+5Ud1E588Y+LFo8TaB8JVPNAZw/lGGao+1SepHDeTs2dFLurdNIAgUuDlwezqEjRjElkCJajVrtrZaBxvaQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" + "@noble/curves": "~1.8.0", + "@noble/hashes": "~1.7.0", + "@scure/base": "~1.2.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "@noble/hashes": "1.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, + "node_modules/@scure/bip39": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.1.tgz", + "integrity": "sha512-GnlufVSP9UdAo/H2Patfv22VTtpNTyfi+I3qCKpvuB5l1KWzEYx+l2TNpBy9Ksh4xTs3Rn06tBlpWCi/1Vz8gw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@noble/hashes": "~1.7.0", + "@scure/base": "~1.2.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, + "node_modules/@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==", + "license": "MIT" + }, + "node_modules/@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@stablelib/int": "^1.0.1" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, + "node_modules/@stablelib/bytes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==", + "license": "MIT" + }, + "node_modules/@stablelib/chacha": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, + "node_modules/@stablelib/chacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, + "node_modules/@stablelib/constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==", "license": "MIT" }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, + "node_modules/@stablelib/ed25519": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz", + "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==", "license": "MIT", "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@stablelib/random": "^1.0.2", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/axe-core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", - "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" + "node_modules/@stablelib/hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==", + "license": "MIT" + }, + "node_modules/@stablelib/hkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", + "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", + "license": "MIT", + "dependencies": { + "@stablelib/hash": "^1.0.1", + "@stablelib/hmac": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" + "node_modules/@stablelib/hmac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", + "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", + "license": "MIT", + "dependencies": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==", "license": "MIT" }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "node_modules/@stablelib/keyagreement": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@stablelib/bytes": "^1.0.1" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "node_modules/@stablelib/poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/@stablelib/random": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz", + "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==", "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" - }, + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha256": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", + "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha512": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz", + "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==", + "license": "MIT" + }, + "node_modules/@stablelib/x25519": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz", + "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==", + "license": "MIT", + "dependencies": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.62.16", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.16.tgz", + "integrity": "sha512-9Sgft7Qavcd+sN0V25xVyo0nfmcZXBuODy3FVG7BMWTg1HMLm8wwG5tNlLlmSic1u7l1v786oavn+STiFaPH2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.62.16", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.16.tgz", + "integrity": "sha512-XJIZNj65d2IdvU8VBESmrPakfIm6FSdHDzrS1dPrAwmq3ZX+9riMh/ZfbNQHAWnhrgmq7KoXpgZSRyXnqMYT9A==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.62.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", + "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", + "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/type-utils": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", + "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", + "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", + "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", + "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", + "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", + "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", + "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@walletconnect/core": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.3.tgz", + "integrity": "sha512-57uv0FW4L6H/tmkb1kS2nG41MDguyDgZbGR58nkDUd1TO/HydyiTByVOhFzIxgN331cnY/1G1rMaKqncgdnOFA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.0.4", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", + "@walletconnect/window-getters": "1.0.1", + "events": "3.3.0", + "lodash.isequal": "4.5.0", + "uint8arrays": "3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@walletconnect/environment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", + "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/environment/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/ethereum-provider": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.17.3.tgz", + "integrity": "sha512-fgoT+dT9M1P6IIUtBl66ddD+4IJYqdhdAYkW+wa6jbctxKlHYSXf9HsgF/Vvv9lMnxHdAIz0W9VN4D/m20MamA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/modal": "2.7.0", + "@walletconnect/sign-client": "2.17.3", + "@walletconnect/types": "2.17.3", + "@walletconnect/universal-provider": "2.17.3", + "@walletconnect/utils": "2.17.3", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/events": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz", + "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==", + "license": "MIT", + "dependencies": { + "keyvaluestorage-interface": "^1.0.0", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/events/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/heartbeat": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", + "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", + "license": "MIT", + "dependencies": { + "@walletconnect/events": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/jsonrpc-http-connection": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz", + "integrity": "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.1", + "cross-fetch": "^3.1.4", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/jsonrpc-provider": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", + "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/jsonrpc-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", + "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", + "license": "MIT", + "dependencies": { + "events": "^3.3.0", + "keyvaluestorage-interface": "^1.0.0" + } + }, + "node_modules/@walletconnect/jsonrpc-utils": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", + "license": "MIT", + "dependencies": { + "@walletconnect/environment": "^1.0.1", + "@walletconnect/jsonrpc-types": "^1.0.3", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", + "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" + } + }, + "node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", + "dependencies": { + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "1.x" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@walletconnect/logger": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", + "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==", + "license": "MIT", + "dependencies": { + "@walletconnect/safe-json": "^1.0.2", + "pino": "7.11.0" + } + }, + "node_modules/@walletconnect/modal": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.7.0.tgz", + "integrity": "sha512-RQVt58oJ+rwqnPcIvRFeMGKuXb9qkgSmwz4noF8JZGUym3gUAzVs+uW2NQ1Owm9XOJAV+sANrtJ+VoVq1ftElw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/modal-core": "2.7.0", + "@walletconnect/modal-ui": "2.7.0" + } + }, + "node_modules/@walletconnect/modal-core": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.7.0.tgz", + "integrity": "sha512-oyMIfdlNdpyKF2kTJowTixZSo0PGlCJRdssUN/EZdA6H6v03hZnf09JnwpljZNfir2M65Dvjm/15nGrDQnlxSA==", + "license": "Apache-2.0", + "dependencies": { + "valtio": "1.11.2" + } + }, + "node_modules/@walletconnect/modal-ui": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.7.0.tgz", + "integrity": "sha512-gERYvU7D7K1ANCN/8vUgsE0d2hnRemfAFZ2novm9aZBg7TEd/4EgB+AqbJ+1dc7GhOL6dazckVq78TgccHb7mQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/modal-core": "2.7.0", + "lit": "2.8.0", + "motion": "10.16.2", + "qrcode": "1.5.3" + } + }, + "node_modules/@walletconnect/relay-api": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", + "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-types": "^1.0.2" + } + }, + "node_modules/@walletconnect/relay-auth": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz", + "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==", + "license": "MIT", + "dependencies": { + "@stablelib/ed25519": "^1.0.2", + "@stablelib/random": "^1.0.1", + "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "tslib": "1.14.1", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/@walletconnect/relay-auth/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/safe-json/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/sign-client": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.3.tgz", + "integrity": "sha512-OzOWxRTfVGCHU3OOF6ibPkgPfDpivFJjuknfcOUt9PYWpTAv6YKOmT4cyfBPhc7llruyHpV44fYbykMcLIvEcg==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.17.3", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", + "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/time/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/types": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.3.tgz", + "integrity": "sha512-5eFxnbZGJJx0IQyCS99qz+OvozpLJJYfVG96dEHGgbzZMd+C9V1eitYqVClx26uX6V+WQVqVwjpD2Dyzie++Wg==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/universal-provider": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.17.3.tgz", + "integrity": "sha512-Aen8h+vWTN57sv792i96vaTpN06WnpFUWhACY5gHrpL2XgRKmoXUgW7793p252QdgyofNAOol7wJEs1gX8FjgQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.17.3", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", + "events": "3.3.0", + "lodash": "4.17.21" + } + }, + "node_modules/@walletconnect/utils": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.3.tgz", + "integrity": "sha512-tG77UpZNeLYgeOwViwWnifpyBatkPlpKSSayhN0gcjY1lZAUNqtYslpm4AdTxlrA3pL61MnyybXgWYT5eZjarw==", + "license": "Apache-2.0", + "dependencies": { + "@ethersproject/hash": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@stablelib/chacha20poly1305": "1.0.1", + "@stablelib/hkdf": "1.0.1", + "@stablelib/random": "1.0.2", + "@stablelib/sha256": "1.0.1", + "@stablelib/x25519": "1.0.3", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.0.4", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0" + } + }, + "node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/window-getters/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "license": "MIT", + "dependencies": { + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/window-metadata/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/abitype": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.7.tgz", + "integrity": "sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, "engines": { "node": ">=8" } }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -1513,7 +3680,15 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "license": "MIT", "engines": { "node": ">=6" @@ -1523,6 +3698,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -1628,6 +3804,51 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -1684,6 +3905,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -1696,10 +3918,65 @@ "dev": true, "license": "MIT" }, + "node_modules/consola": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.3.tgz", + "integrity": "sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1710,10 +3987,20 @@ "node": ">= 8" } }, + "node_modules/crossws": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.1.tgz", + "integrity": "sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -1726,7 +4013,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, "license": "MIT" }, "node_modules/damerau-levenshtein": { @@ -1794,7 +4080,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1808,6 +4093,24 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1851,6 +4154,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "license": "MIT" + }, + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", + "license": "MIT" + }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -1861,16 +4182,30 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, "license": "Apache-2.0" }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, "license": "MIT" }, "node_modules/doctrine": { @@ -1886,18 +4221,80 @@ "node": ">=6.0.0" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, "license": "MIT" }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/enhanced-resolve": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", @@ -1912,6 +4309,21 @@ "node": ">=10.13.0" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -2083,7 +4495,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2571,6 +4982,21 @@ "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2582,6 +5008,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2598,6 +5025,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -2620,10 +5048,20 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -2654,6 +5092,21 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2707,6 +5160,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", @@ -2778,6 +5232,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -2798,6 +5270,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -2855,6 +5336,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -2923,6 +5405,24 @@ "dev": true, "license": "MIT" }, + "node_modules/h3": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.13.1.tgz", + "integrity": "sha512-u/z6Z4YY+ANZ05cRRfsFJadTBrNA6e3jxdU+AN5UCbZSZEUwgHiwjvUEe0k1NoQmAvQmETwr+xB5jd7mhCJuIQ==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.1", + "defu": "^6.1.4", + "destr": "^2.0.3", + "iron-webcrypto": "^1.2.1", + "ohash": "^1.1.4", + "radix3": "^1.1.2", + "ufo": "^1.5.4", + "uncrypto": "^0.1.3", + "unenv": "^1.10.0" + } + }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -2998,6 +5498,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -3010,6 +5520,38 @@ "node": ">= 0.4" } }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "license": "MIT" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "license": "Apache-2.0" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3024,7 +5566,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -3063,9 +5604,18 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, "license": "ISC" }, + "node_modules/input-otp": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz", + "integrity": "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -3081,6 +5631,15 @@ "node": ">= 0.4" } }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -3503,6 +6062,21 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "license": "ISC" }, + "node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, "node_modules/iterator.prototype": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", @@ -3524,6 +6098,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -3539,16 +6114,22 @@ "version": "1.21.6", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -3564,6 +6145,18 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -3571,6 +6164,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3624,6 +6223,12 @@ "json-buffer": "3.0.1" } }, + "node_modules/keyvaluestorage-interface": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", + "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==", + "license": "MIT" + }, "node_modules/language-subtag-registry": { "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", @@ -3662,6 +6267,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -3673,6 +6279,37 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, + "node_modules/lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-element": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3689,6 +6326,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3728,6 +6377,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -3737,6 +6387,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -3746,6 +6397,30 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3773,22 +6448,63 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/mipd": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", + "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wagmi-dev" + } + ], + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/motion": { + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", + "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", + "license": "MIT", + "dependencies": { + "@motionone/animation": "^10.15.1", + "@motionone/dom": "^10.16.2", + "@motionone/svelte": "^10.16.2", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "@motionone/vue": "^10.16.2" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, + "node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0", @@ -3903,6 +6619,32 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "license": "MIT" + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3916,6 +6658,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3925,6 +6668,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -4039,11 +6783,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ofetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.4", + "ufo": "^1.5.4" + } + }, + "node_modules/ohash": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==", + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==", + "license": "MIT" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -4067,6 +6833,35 @@ "node": ">= 0.8.0" } }, + "node_modules/ox": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.4.2.tgz", + "integrity": "sha512-X3Ho21mTtJiCU2rWmfaheh2b0CG70Adre7Da/XQ0ECy+QppI6pLqdbGAJHiu/cTjumVXfwDGfv48APqePCU+ow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4099,17 +6894,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -4118,11 +6922,28 @@ "node": ">=6" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4157,6 +6978,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", @@ -4169,6 +6991,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4191,20 +7028,69 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pino": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz", + "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.0.0", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "v0.5.0", + "pino-std-serializers": "^4.0.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.1.0", + "safe-stable-stringify": "^2.1.0", + "sonic-boom": "^2.2.1", + "thread-stream": "^0.15.1" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" } }, + "node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==", + "license": "MIT" + }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" } }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -4219,6 +7105,7 @@ "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -4247,6 +7134,7 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", @@ -4264,6 +7152,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" @@ -4283,6 +7172,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -4318,6 +7208,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -4330,6 +7221,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -4355,6 +7247,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -4368,8 +7261,19 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, "license": "MIT" }, + "node_modules/preact": { + "version": "10.25.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz", + "integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4380,6 +7284,12 @@ "node": ">= 0.8.0" } }, + "node_modules/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==", + "license": "MIT" + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4392,6 +7302,12 @@ "react-is": "^16.13.1" } }, + "node_modules/proxy-compare": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", + "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -4402,10 +7318,47 @@ "node": ">=6" } }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -4422,6 +7375,18 @@ ], "license": "MIT" }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, "node_modules/react": { "version": "19.0.0-rc-02c0e824-20241028", "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-02c0e824-20241028.tgz", @@ -4447,18 +7412,101 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, "license": "MIT" }, + "node_modules/react-remove-scroll": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", + "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, "license": "MIT", "dependencies": { "pify": "^2.3.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4471,6 +7519,15 @@ "node": ">=8.10.0" } }, + "node_modules/real-require": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", + "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", @@ -4493,6 +7550,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, "node_modules/regexp.prototype.flags": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", @@ -4512,6 +7575,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -4533,7 +7611,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -4553,6 +7630,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -4580,6 +7658,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -4618,6 +7697,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", @@ -4636,6 +7735,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/scheduler": { "version": "0.25.0-rc-02c0e824-20241028", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-02c0e824-20241028.tgz", @@ -4655,6 +7763,12 @@ "node": ">=10" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -4773,6 +7887,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -4791,6 +7906,24 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4800,6 +7933,30 @@ "node": ">=0.10.0" } }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -4808,10 +7965,29 @@ "node": ">=10.0.0" } }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -4830,6 +8006,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -4844,12 +8021,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -4862,6 +8041,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -4995,6 +8175,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -5049,10 +8230,17 @@ } } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", @@ -5075,6 +8263,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -5084,6 +8273,7 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -5104,6 +8294,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -5154,6 +8345,7 @@ "version": "3.4.14", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -5217,23 +8409,144 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thirdweb": { + "version": "5.83.1", + "resolved": "https://registry.npmjs.org/thirdweb/-/thirdweb-5.83.1.tgz", + "integrity": "sha512-WuDPlVx7musSh6gMKaF44OM+wdqCb1K9DKt6srxv686pAuHwmJpArGFjjjEUdJ0kh9ralKUNMibWugvLyhzqJQ==", + "license": "Apache-2.0", + "dependencies": { + "@coinbase/wallet-sdk": "4.2.4", + "@emotion/react": "11.14.0", + "@emotion/styled": "11.14.0", + "@google/model-viewer": "2.1.1", + "@noble/curves": "1.7.0", + "@noble/hashes": "1.6.1", + "@passwordless-id/webauthn": "^2.1.2", + "@radix-ui/react-dialog": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-icons": "1.3.2", + "@radix-ui/react-tooltip": "1.1.5", + "@tanstack/react-query": "5.62.16", + "@walletconnect/ethereum-provider": "2.17.3", + "@walletconnect/sign-client": "2.17.3", + "abitype": "1.0.7", + "cross-spawn": "7.0.6", + "fuse.js": "7.0.0", + "input-otp": "^1.4.1", + "mipd": "0.0.7", + "ox": "0.4.2", + "uqr": "0.1.2", + "viem": "2.21.55" + }, + "bin": { + "thirdweb": "dist/esm/cli/bin.js", + "thirdweb-cli": "dist/esm/cli/bin.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@aws-sdk/client-lambda": "^3", + "@aws-sdk/credential-providers": "^3", + "@coinbase/wallet-mobile-sdk": "^1", + "@mobile-wallet-protocol/client": "0.1.1", + "@react-native-async-storage/async-storage": "^1 || ^2", + "ethers": "^5 || ^6", + "expo-linking": "^6", + "expo-web-browser": "^13 || ^14", + "react": "^18 || ^19", + "react-native": "*", + "react-native-aes-gcm-crypto": "^0.2", + "react-native-passkey": "^3", + "react-native-quick-crypto": ">=0.7.0-rc.6 || >=0.7", + "react-native-svg": "^15", + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-kms": { + "optional": true + }, + "@aws-sdk/client-lambda": { + "optional": true + }, + "@aws-sdk/credential-providers": { + "optional": true + }, + "@coinbase/wallet-mobile-sdk": { + "optional": true + }, + "@mobile-wallet-protocol/client": { + "optional": true + }, + "@react-native-async-storage/async-storage": { + "optional": true + }, + "ethers": { + "optional": true + }, + "expo-linking": { + "optional": true + }, + "expo-web-browser": { + "optional": true + }, + "react": { + "optional": true + }, + "react-native": { + "optional": true + }, + "react-native-aes-gcm-crypto": { + "optional": true + }, + "react-native-passkey": { + "optional": true + }, + "react-native-quick-crypto": { + "optional": true + }, + "react-native-svg": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/thread-stream": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz", + "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==", "license": "MIT", "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" + "real-require": "^0.1.0" } }, + "node_modules/three": { + "version": "0.146.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.146.0.tgz", + "integrity": "sha512-1lvNfLezN6OJ9NaFAhfX4sm5e9YCzHtaRgZ1+B4C+Hv6TibRMsuBAM5/wVKzxjpYIlMymvgsHEFrrigEfXnb2A==", + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5246,6 +8559,12 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, "node_modules/ts-api-utils": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", @@ -5263,6 +8582,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, "license": "Apache-2.0" }, "node_modules/tsconfig-paths": { @@ -5291,155 +8611,504 @@ "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, + "node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unenv": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz", + "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3", + "defu": "^6.1.4", + "mime": "^3.0.0", + "node-fetch-native": "^1.6.4", + "pathe": "^1.1.2" + } + }, + "node_modules/unstorage": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.14.4.tgz", + "integrity": "sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^3.6.0", + "destr": "^2.0.3", + "h3": "^1.13.0", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.4", + "ofetch": "^1.4.1", + "ufo": "^1.5.4" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.5.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3", + "@deno/kv": ">=0.8.4", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.0", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.1" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/uqr": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", + "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/valtio": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.11.2.tgz", + "integrity": "sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "2.5.1", + "use-sync-external-store": "1.2.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "node": ">=12.20.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/react": ">=16.8", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, + "node_modules/viem": { + "version": "2.21.55", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.55.tgz", + "integrity": "sha512-PgXew7C11cAuEtOSgRyQx2kJxEOPUwIwZA9dMglRByqJuFVA7wSGZZOOo/93iylAA8E15bEdqy9xulU3oKZ70Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "@noble/curves": "1.7.0", + "@noble/hashes": "1.6.1", + "@scure/bip32": "1.6.0", + "@scure/bip39": "1.5.0", + "abitype": "1.0.7", + "isows": "1.0.6", + "ox": "0.1.2", + "webauthn-p256": "0.0.10", + "ws": "8.18.0" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, + "node_modules/viem/node_modules/@scure/bip32": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.0.tgz", + "integrity": "sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" + "@noble/curves": "~1.7.0", + "@noble/hashes": "~1.6.0", + "@scure/base": "~1.2.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, + "node_modules/viem/node_modules/@scure/bip39": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.0.tgz", + "integrity": "sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==", "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" + "@noble/hashes": "~1.6.0", + "@scure/base": "~1.2.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, + "node_modules/viem/node_modules/ox": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.1.2.tgz", + "integrity": "sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "typescript": ">=5.4.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "node_modules/viem/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { - "node": ">=14.17" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, + "node_modules/webauthn-p256": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz", + "integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0" } }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT" + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { - "punycode": "^2.1.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5518,6 +9187,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -5552,6 +9227,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -5570,6 +9246,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -5587,12 +9264,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -5607,6 +9286,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -5619,6 +9299,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -5631,6 +9312,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -5646,13 +9328,40 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "license": "ISC" }, "node_modules/yaml": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -5661,6 +9370,113 @@ "node": ">= 14" } }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/Multi Sig Wallet/Frontend/package.json b/Multi Sig Wallet/Frontend/package.json index 03d095d4..bb3392ca 100644 --- a/Multi Sig Wallet/Frontend/package.json +++ b/Multi Sig Wallet/Frontend/package.json @@ -9,14 +9,19 @@ "lint": "next lint" }, "dependencies": { + "@radix-ui/react-dialog": "^1.1.4", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-slot": "^1.1.1", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "dotenv": "^16.4.7", "lucide-react": "^0.454.0", "next": "15.0.2", "react": "19.0.0-rc-02c0e824-20241028", "react-dom": "19.0.0-rc-02c0e824-20241028", "tailwind-merge": "^2.5.4", - "tailwindcss-animate": "^1.0.7" + "tailwindcss-animate": "^1.0.7", + "thirdweb": "^5.83.1" }, "devDependencies": { "@types/node": "^20", diff --git a/Multi Sig Wallet/Frontend/public/banner.jpg b/Multi Sig Wallet/Frontend/public/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c520e2a0a7f61a6fec0919062a521f504d5ea8d5 GIT binary patch literal 489704 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%0A3g%|WIWzS8? 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�-1@(Ulv{_g*iDr{ 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

gQ=}5!xT$rO@}HF#rO0 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 z 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%0D2Hhj;*m&v#9OSSkjP{@lT4kb;Zd40LY+KFNGM= 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 AYybcN literal 0 HcmV?d00001 diff --git a/Multi Sig Wallet/Frontend/public/multisig.jpg b/Multi Sig Wallet/Frontend/public/multisig.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be73af685c7aa5234ff624db2854e6a41557a7c2 GIT binary patch literal 278676 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 !co$E=zE#!QWXN=`MYG=9H5I5=cpgB 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 z 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�R4E$;%V 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

nmC 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 Ve|1`#8TIz?A>vNrET`r1{{cM-#OnY6 literal 0 HcmV?d00001 diff --git a/Multi Sig Wallet/Frontend/tailwind.config.js b/Multi Sig Wallet/Frontend/tailwind.config.js new file mode 100644 index 00000000..cd9f0581 --- /dev/null +++ b/Multi Sig Wallet/Frontend/tailwind.config.js @@ -0,0 +1,44 @@ +module.exports = { + darkMode: ["class"], + content: [ + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}', + ], + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + 'neon-green': '#39FF14', + }, + keyframes: { + "accordion-down": { + from: { height: 0 }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: 0 }, + }, + "fade-in": { + "0%": { opacity: 0 }, + "100%": { opacity: 1 }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + "fade-in": "fade-in 1s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +} + diff --git a/Multi Sig Wallet/Frontend/tailwind.config.ts b/Multi Sig Wallet/Frontend/tailwind.config.ts index ebc9f38b..f7d89ecc 100644 --- a/Multi Sig Wallet/Frontend/tailwind.config.ts +++ b/Multi Sig Wallet/Frontend/tailwind.config.ts @@ -9,6 +9,9 @@ const config: Config = { ], theme: { extend: { + borderColor: { + border: 'hsl(var(border-border))', // Explicitly add `border-border` as a utility + }, colors: { background: 'hsl(var(--background))', foreground: 'hsl(var(--foreground))', From 46994198d22e959081dde377e92b600c788bb553 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Sun, 12 Jan 2025 02:11:39 +0100 Subject: [PATCH 07/11] multisig contracts --- Multi Sig Wallet/contracts/Lock.sol | 34 ----- Multi Sig Wallet/contracts/MultiSig.sol | 140 ++++++++++++++++++ .../contracts/MultiSigFactory.sol | 51 +++++++ 3 files changed, 191 insertions(+), 34 deletions(-) delete mode 100644 Multi Sig Wallet/contracts/Lock.sol create mode 100644 Multi Sig Wallet/contracts/MultiSig.sol create mode 100644 Multi Sig Wallet/contracts/MultiSigFactory.sol diff --git a/Multi Sig Wallet/contracts/Lock.sol b/Multi Sig Wallet/contracts/Lock.sol deleted file mode 100644 index 0c81557f..00000000 --- a/Multi Sig Wallet/contracts/Lock.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.27; - -// Uncomment this line to use console.log -// import "hardhat/console.sol"; - -contract Lock { - uint public unlockTime; - address payable public owner; - - event Withdrawal(uint amount, uint when); - - constructor(uint _unlockTime) payable { - require( - block.timestamp < _unlockTime, - "Unlock time should be in the future" - ); - - unlockTime = _unlockTime; - owner = payable(msg.sender); - } - - function withdraw() public { - // Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal - // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); - - require(block.timestamp >= unlockTime, "You can't withdraw yet"); - require(msg.sender == owner, "You aren't the owner"); - - emit Withdrawal(address(this).balance, block.timestamp); - - owner.transfer(address(this).balance); - } -} diff --git a/Multi Sig Wallet/contracts/MultiSig.sol b/Multi Sig Wallet/contracts/MultiSig.sol new file mode 100644 index 00000000..9b28b6a5 --- /dev/null +++ b/Multi Sig Wallet/contracts/MultiSig.sol @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.27; + +// import "hardhat/console.sol"; + +error MultiSig__OwnersRequired(); +error MultiSig__InvalidAddress(); +error MultiSig__NotConfirmed(); +error MultiSig__AlreadyConfirmed(); +error MultiSig__ProposalNotExists(); +error MultiSig__AlreadyExecuted(); +error MultiSig__NotEnoughConfirmations(); + +contract MultiSig{ + uint256 private deployedTime; + address private deployer; + address[] private owners; + uint private noOfConfirmationsNeeded; + + // Making it more complex by adding time periods for when proposals expires + // enum Status { + // success, + // pending, + // canceled + // } + + // event Withdrawal(uint amount, uint when); + + struct Transaction { + address proposer; + address to; + bytes data; + uint256 noOfConfirmations; + bool status; + } + + mapping(uint256 => Transaction) private proposalByIndex; + mapping(address => bool) private isOwner; + mapping(address => mapping(uint256 => bool)) private confirmedByIndex; + + Transaction[] private transactions; + + modifier onlyOwners() { + if(!isOwner[msg.sender]) revert MultiSig__NotOwner(); + _; + } + + modifier porposalAvailable(_proposalIndex) { + if(_proposalIndex >= transactions.length) revert MultiSig__ProposalNotExists(); + _; + } + + constructor(address[] memory _owners, uint256 _noOfConfirmationsNeeded) { + + // Include your address if needed to perform the functions before deploying! + + if(_owners.length < 1) revert MultiSig__OwnersRequired(); + + deployedTime = block.timestamp; + deployer = payable(msg.sender); + noOfConfirmationsNeeded = _noOfConfirmationsNeeded; + + for(uint i = 0; i < _owners.length; i++) { + if(_owners[i] == address(0)) revert MultiSig__InvalidAddress(); + owners[i] = _owners[i]; + isOwner[i] = true; + } + } + + function submitProposal(address _to, bytes memory _data) public returns(bool) onlyOwners { + + uint256 proposalIndex = transaction.length; + + Transaction storage transaction = Transaction(msg.sender, _to, _data, 0, false); + transactions.push(transaction); + + proposalByIndex[proposalIndex] = transaction; + + // emit ProposalSubmitted(); + } + + function confirmProposal(uint256 _proposalIndex) public returns (bool) onlyOwners proposalAvailable(_proposalIndex) { + + if(confirmedByIndex[msg.sender][_proposalIndex]) revert MultiSig__AlreadyConfirmed(); + + Transaction storage transaction = proposalByIndex[_proposalIndex]; + if(transaction.status) revert MultiSig__AlreadyExecuted(); + transaction.noOfConfirmations += 1; + + confirmedByIndex[msg.sender][_proposalIndex] = true; + + // emit Confirmedproposal() + } + + function revokeConfirmedProposal(uint _proposalIndex) public returns (bool) onlyOwners proposalAvailable(_proposalIndex) { + + //TODO: Require incase the proposal is executed, it should revert + if(!confirmedByIndex[msg.sender][_proposalIndex]) revert MultiSig__NotConfirmed(); + + Transaction storage transaction = proposalByIndex[_proposalIndex]; + if(transaction.status) revert MultiSig__AlreadyExecuted(); + transaction.noOfConfirmations -= 1; + + confirmedByIndex[msg.sender][_proposalIndex] = false; + + // emit RevokedProposal() + } + + function executeProposal(uint _proposalIndex) public returns (bool) onlyOwners proposalAvailable(_proposalIndex) { + + Transaction storage transaction = proposalByIndex[_proposalIndex]; + if(transaction.noOfConfirmations < noOfConfirmationsNeeded) revert MultiSig__NotEnoughConfirmations(); + + if(transaction.status) revert MultiSig__AlreadyExecuted(); + + transaction.status = true; + + //TODO: execute the proposal + } + + + + + ////// GETTER FUNCTIONS + function getdeployer() public returns (address) { + return deployer; + } + + function getOwners() public returns (address[] memory) { + return owners; + } + + function getTimeCreated() public returns (uint256) { + return deployedTime; + } + + function getAllProposals() public returns (Transaction[] memory) { + return transactions; + } +} diff --git a/Multi Sig Wallet/contracts/MultiSigFactory.sol b/Multi Sig Wallet/contracts/MultiSigFactory.sol new file mode 100644 index 00000000..5b535b01 --- /dev/null +++ b/Multi Sig Wallet/contracts/MultiSigFactory.sol @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.27; + +import "./interfaces/IPool.sol"; +import "./Pool.sol"; + +contract MultiSigFactory { + address private feeReceiver; // TODO: implement token fee receivers for creating those smart wallets + + address[] private allWallets; + + event PoolCreated(address tokenA, address tokenB, address poolAddress); + + constructor(address _feeReceiver) { + feeReceiver = _feeReceiver; + } + + function createMultiSig(address[] memory _owners, uint256 noOfConfirmations) + external returns (address multisigAddress) { + + bytes memory bytecode = getByteCode(_owners, _noOfConfirmations); + bytes32 salt = keccak256(abi.encodePacked(_owners[0], _owners[1])); + + //TODO: put the salt + + assembly { + multisigAddress := create2(0, add(bytecode, 32), mload(bytecode), salt) + } + + allWallets.push(multisigAddress); + + emit MultiSigCreated(multisigAddress); + } + + + function getAllDeployedMultiSigs() public returns (address[] memory) { + return allWallets; + } + + + function getBytecode(address[] memory _owners) + internal + pure + returns (bytes memory) + { + bytes memory bytecode = type(MultiSig).creationCode; + + return abi.encodePacked(bytecode, abi.encode(_owners, _noOfConfirmations)); + } +} \ No newline at end of file From 21b3086ff894baa730429dbc2e0187ee9ed4bef1 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Mon, 13 Jan 2025 12:00:35 +0100 Subject: [PATCH 08/11] multisig contracts --- Multi Sig Wallet/contracts/MultiSig.sol | 50 +- .../contracts/MultiSigFactory.sol | 73 +- Multi Sig Wallet/hardhat.config.js | 23 + Multi Sig Wallet/package-lock.json | 3600 ++++++++++++++--- Multi Sig Wallet/package.json | 23 +- Multi Sig Wallet/test/Lock.js | 167 +- 6 files changed, 3283 insertions(+), 653 deletions(-) diff --git a/Multi Sig Wallet/contracts/MultiSig.sol b/Multi Sig Wallet/contracts/MultiSig.sol index 9b28b6a5..0a6692ad 100644 --- a/Multi Sig Wallet/contracts/MultiSig.sol +++ b/Multi Sig Wallet/contracts/MultiSig.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.27; // import "hardhat/console.sol"; @@ -10,8 +10,10 @@ error MultiSig__AlreadyConfirmed(); error MultiSig__ProposalNotExists(); error MultiSig__AlreadyExecuted(); error MultiSig__NotEnoughConfirmations(); +error MultiSig__NotOwner(); +error MultiSig__TransferFailed(); -contract MultiSig{ +contract MultiSig { uint256 private deployedTime; address private deployer; address[] private owners; @@ -29,7 +31,9 @@ contract MultiSig{ struct Transaction { address proposer; address to; - bytes data; + uint256 value; + // bytes data; TODO: Complex functions + string description; uint256 noOfConfirmations; bool status; } @@ -45,7 +49,7 @@ contract MultiSig{ _; } - modifier porposalAvailable(_proposalIndex) { + modifier proposalAvailable(uint256 _proposalIndex) { if(_proposalIndex >= transactions.length) revert MultiSig__ProposalNotExists(); _; } @@ -57,56 +61,58 @@ contract MultiSig{ if(_owners.length < 1) revert MultiSig__OwnersRequired(); deployedTime = block.timestamp; - deployer = payable(msg.sender); + deployer = msg.sender; noOfConfirmationsNeeded = _noOfConfirmationsNeeded; for(uint i = 0; i < _owners.length; i++) { if(_owners[i] == address(0)) revert MultiSig__InvalidAddress(); - owners[i] = _owners[i]; - isOwner[i] = true; + owners.push(_owners[i]); + isOwner[_owners[i]] = true; } } - function submitProposal(address _to, bytes memory _data) public returns(bool) onlyOwners { + function submitProposal(address _to, uint256 _value, string memory _description) public onlyOwners returns (bool) { - uint256 proposalIndex = transaction.length; + uint256 proposalIndex = transactions.length; - Transaction storage transaction = Transaction(msg.sender, _to, _data, 0, false); + Transaction memory transaction = Transaction(msg.sender, _to, _value, _description, 0, false); transactions.push(transaction); proposalByIndex[proposalIndex] = transaction; + return false; + // emit ProposalSubmitted(); } - function confirmProposal(uint256 _proposalIndex) public returns (bool) onlyOwners proposalAvailable(_proposalIndex) { + function confirmProposal(uint256 _proposalIndex) public onlyOwners proposalAvailable(_proposalIndex) returns (bool) { if(confirmedByIndex[msg.sender][_proposalIndex]) revert MultiSig__AlreadyConfirmed(); Transaction storage transaction = proposalByIndex[_proposalIndex]; if(transaction.status) revert MultiSig__AlreadyExecuted(); - transaction.noOfConfirmations += 1; + transaction.noOfConfirmations = transaction.noOfConfirmations + 1; confirmedByIndex[msg.sender][_proposalIndex] = true; // emit Confirmedproposal() } - function revokeConfirmedProposal(uint _proposalIndex) public returns (bool) onlyOwners proposalAvailable(_proposalIndex) { + function revokeConfirmedProposal(uint256 _proposalIndex) public onlyOwners proposalAvailable(_proposalIndex) returns (bool) { //TODO: Require incase the proposal is executed, it should revert if(!confirmedByIndex[msg.sender][_proposalIndex]) revert MultiSig__NotConfirmed(); Transaction storage transaction = proposalByIndex[_proposalIndex]; if(transaction.status) revert MultiSig__AlreadyExecuted(); - transaction.noOfConfirmations -= 1; + transaction.noOfConfirmations = transaction.noOfConfirmations - 1; confirmedByIndex[msg.sender][_proposalIndex] = false; // emit RevokedProposal() } - function executeProposal(uint _proposalIndex) public returns (bool) onlyOwners proposalAvailable(_proposalIndex) { + function executeProposal(uint _proposalIndex) public onlyOwners proposalAvailable(_proposalIndex) returns (bool) { Transaction storage transaction = proposalByIndex[_proposalIndex]; if(transaction.noOfConfirmations < noOfConfirmationsNeeded) revert MultiSig__NotEnoughConfirmations(); @@ -116,25 +122,31 @@ contract MultiSig{ transaction.status = true; //TODO: execute the proposal + (bool success, ) = transaction.to.call{value: transaction.value}(""/**transaction.data*/); + if(!success) revert MultiSig__TransferFailed(); + } + + function fundWallet() public payable returns(uint256){ + return msg.value; } ////// GETTER FUNCTIONS - function getdeployer() public returns (address) { + function getDeployer() public view returns (address) { return deployer; } - function getOwners() public returns (address[] memory) { + function getOwners() public view returns (address[] memory) { return owners; } - function getTimeCreated() public returns (uint256) { + function getTimeCreated() public view returns (uint256) { return deployedTime; } - function getAllProposals() public returns (Transaction[] memory) { + function getAllProposals() public view returns (Transaction[] memory) { return transactions; } } diff --git a/Multi Sig Wallet/contracts/MultiSigFactory.sol b/Multi Sig Wallet/contracts/MultiSigFactory.sol index 5b535b01..656e9760 100644 --- a/Multi Sig Wallet/contracts/MultiSigFactory.sol +++ b/Multi Sig Wallet/contracts/MultiSigFactory.sol @@ -2,22 +2,28 @@ pragma solidity ^0.8.27; -import "./interfaces/IPool.sol"; -import "./Pool.sol"; +import "./MultiSig.sol"; contract MultiSigFactory { address private feeReceiver; // TODO: implement token fee receivers for creating those smart wallets address[] private allWallets; - event PoolCreated(address tokenA, address tokenB, address poolAddress); + // struct Transaction { + // address proposer; + // address to; + // bytes data; + // uint256 noOfConfirmations; + // bool status; + // } + + event MultiSigCreated(address multisigAddress); constructor(address _feeReceiver) { feeReceiver = _feeReceiver; } - function createMultiSig(address[] memory _owners, uint256 noOfConfirmations) - external returns (address multisigAddress) { + function createMultiSig(address[] memory _owners, uint256 _noOfConfirmations) payable external returns (address multisigAddress) { bytes memory bytecode = getByteCode(_owners, _noOfConfirmations); bytes32 salt = keccak256(abi.encodePacked(_owners[0], _owners[1])); @@ -33,13 +39,65 @@ contract MultiSigFactory { emit MultiSigCreated(multisigAddress); } + //// ROUTING OR CONTROLLER SECTION + function submitTransaction(address multisigAddress, address _to, uint256 _value, string memory _description) public returns (bool) { + bool submitted = MultiSig(multisigAddress).submitProposal(_to, _value, _description); + + return submitted; + } + + function confirmTransaction(address multisigAddress, uint256 _proposalIndex) public returns (bool) { + bool isConfirmed = MultiSig(multisigAddress).confirmProposal(_proposalIndex); + + return isConfirmed; + } + + function revokeConfirmedTransaction(address multisigAddress, uint256 _proposalIndex) public returns (bool) { + bool isRevoked = MultiSig(multisigAddress).revokeConfirmedProposal(_proposalIndex); + + return isRevoked; + } + + function executeTransaction(address multisigAddress, uint _proposalIndex) public returns (bool) { + bool isExecuted = MultiSig(multisigAddress).executeProposal(_proposalIndex); + + return isExecuted; + } + + function Deposit(address multisigAddress) public returns(uint256) { + return MultiSig(multisigAddress).fundWallet(); + } - function getAllDeployedMultiSigs() public returns (address[] memory) { + // rOUTER TO GETTER FUNCIONS FROM THE MULTISIGS + function getOwners(address multisigAddress) public view returns (address[] memory) { + address[] memory owners = MultiSig(multisigAddress).getOwners(); + return owners; + } + + function getDeployer(address multisigAddress) public view returns (address) { + return MultiSig(multisigAddress).getDeployer(); + } + + function getAllProposals(address multisigAddress) public view returns (MultiSig.Transaction[] memory) { + MultiSig.Transaction[] memory transactions = MultiSig(multisigAddress).getAllProposals(); + return transactions; + } + + function getTimeCreated(address multisigAddress) public view returns (uint256) { + uint256 deployedTime = MultiSig(multisigAddress).getTimeCreated() ; + return deployedTime; + } + + + // GETTER FUNCTIONS + + + function getAllDeployedMultiSigs() public view returns (address[] memory) { return allWallets; } - function getBytecode(address[] memory _owners) + function getByteCode(address[] memory _owners, uint256 _noOfConfirmations) internal pure returns (bytes memory) @@ -48,4 +106,5 @@ contract MultiSigFactory { return abi.encodePacked(bytecode, abi.encode(_owners, _noOfConfirmations)); } + } \ No newline at end of file diff --git a/Multi Sig Wallet/hardhat.config.js b/Multi Sig Wallet/hardhat.config.js index 2cbdac34..c8562a31 100644 --- a/Multi Sig Wallet/hardhat.config.js +++ b/Multi Sig Wallet/hardhat.config.js @@ -1,6 +1,29 @@ require("@nomicfoundation/hardhat-toolbox"); +require("dotenv").config(); /** @type import('hardhat/config').HardhatUserConfig */ +const PRIVATE_KEY = process.env.PRIVATE_KEY; + module.exports = { solidity: "0.8.27", + + networks: { + localhost: { + url: "http://127.0.0.1:8545/", + // accounts: Thanks hardhat! + chainId: 31337, + allowUnlimitedContractSize: true, + }, + // sepolia: { + // url: SEPOLIA_RPC_URL, + // accounts: [PRIVATE_KEY], + // chainId: 11155111, + // blockConfirmations: 2, + // }, + core: { + url: 'https://rpc.test.btcs.network', + accounts: [PRIVATE_KEY], + chainId: 1115, + }, + }, }; diff --git a/Multi Sig Wallet/package-lock.json b/Multi Sig Wallet/package-lock.json index 1de753d9..4ff02385 100644 --- a/Multi Sig Wallet/package-lock.json +++ b/Multi Sig Wallet/package-lock.json @@ -8,9 +8,30 @@ "name": "reuse", "version": "1.0.0", "license": "ISC", + "dependencies": { + "dotenv": "^16.4.7" + }, "devDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.8", + "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.9", + "@nomicfoundation/hardhat-network-helpers": "^1.0.12", "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "hardhat": "^2.22.15" + "@nomicfoundation/hardhat-verify": "^2.0.12", + "@typechain/ethers-v6": "^0.5.1", + "@typechain/hardhat": "^9.1.0", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "chai": "^4.5.0", + "ethers": "^6.13.5", + "hardhat": "^2.22.15", + "hardhat-gas-reporter": "^1.0.10", + "install": "^0.13.0", + "npm": "^11.0.0", + "solidity-coverage": "^0.8.14", + "ts-node": "^10.9.2", + "typechain": "^8.3.2", + "typescript": "^5.7.3" } }, "node_modules/@adraffy/ens-normalize": { @@ -18,8 +39,7 @@ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -27,7 +47,6 @@ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -41,7 +60,6 @@ "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", "dev": true, "license": "MPL-2.0", - "peer": true, "bin": { "rlp": "bin/rlp" }, @@ -55,7 +73,6 @@ "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", "dev": true, "license": "MPL-2.0", - "peer": true, "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", @@ -71,7 +88,6 @@ "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "1.4.0" }, @@ -85,7 +101,6 @@ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 16" }, @@ -99,7 +114,6 @@ "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", @@ -115,7 +129,6 @@ "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" @@ -130,7 +143,6 @@ "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", @@ -276,7 +288,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/properties": "^5.7.0" @@ -360,7 +371,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", @@ -418,7 +428,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/basex": "^5.7.0", @@ -450,7 +459,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/address": "^5.7.0", @@ -472,8 +480,7 @@ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@ethersproject/keccak256": { "version": "5.7.0", @@ -549,7 +556,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/sha2": "^5.7.0" @@ -591,7 +597,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -621,7 +626,6 @@ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8.3.0" }, @@ -654,7 +658,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0" @@ -697,7 +700,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", @@ -745,7 +747,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -821,7 +822,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/constants": "^5.7.0", @@ -844,7 +844,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0", @@ -903,7 +902,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/bytes": "^5.7.0", "@ethersproject/hash": "^5.7.0", @@ -928,7 +926,6 @@ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.0.0" } @@ -938,8 +935,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", @@ -947,7 +943,6 @@ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -976,7 +971,6 @@ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "1.3.2" }, @@ -990,7 +984,6 @@ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 16" }, @@ -1030,7 +1023,6 @@ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1045,7 +1037,6 @@ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 8" } @@ -1056,7 +1047,6 @@ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1277,7 +1267,6 @@ "integrity": "sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/chai-as-promised": "^7.1.3", "chai-as-promised": "^7.1.1", @@ -1297,7 +1286,6 @@ "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "debug": "^4.1.1", "lodash.isequal": "^4.5.0" @@ -1308,15 +1296,15 @@ } }, "node_modules/@nomicfoundation/hardhat-ignition": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.7.tgz", - "integrity": "sha512-RFhGazR0/JqHxuuIxjjMmM+nWFqEvA7wcVqcX7vUqqmAIGuok4HhnWQH8aOvBaVguiXvvlFDJL0PIlxmkFgIUg==", + "version": "0.15.9", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.9.tgz", + "integrity": "sha512-lSWqhaDOBt6gsqMadkRLvH6HdoFV1v8/bx7z+12cghaOloVwwn48CPoTH2iXXnkqilPGw8rdH5eVTE6UM+2v6Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@nomicfoundation/ignition-core": "^0.15.7", - "@nomicfoundation/ignition-ui": "^0.15.7", + "@nomicfoundation/ignition-core": "^0.15.9", + "@nomicfoundation/ignition-ui": "^0.15.9", "chalk": "^4.0.0", "debug": "^4.3.2", "fs-extra": "^10.0.0", @@ -1329,16 +1317,15 @@ } }, "node_modules/@nomicfoundation/hardhat-ignition-ethers": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.7.tgz", - "integrity": "sha512-pUZWQeFNMwDe6F/yKIJsCo+87elk/M/Edjp6AnWWIBplRyPa13Nh63+yOqMSSd9Mx9lLuBaEGnYXoI2Uz2wYZA==", + "version": "0.15.9", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.9.tgz", + "integrity": "sha512-9PwwgLv3z2ec3B26mK0IjiFezHFFBcBcs1qKaRu8SanARE4b7RvrfiLIy8ZXE7HaxgPt32kSsQzehhzAwAIj1Q==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@nomicfoundation/hardhat-ethers": "^3.0.4", - "@nomicfoundation/hardhat-ignition": "^0.15.7", - "@nomicfoundation/ignition-core": "^0.15.7", + "@nomicfoundation/hardhat-ignition": "^0.15.9", + "@nomicfoundation/ignition-core": "^0.15.9", "ethers": "^6.7.0", "hardhat": "^2.18.0" } @@ -1472,7 +1459,6 @@ "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ethereumjs-util": "^7.1.4" }, @@ -1486,7 +1472,6 @@ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -1511,7 +1496,6 @@ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dev": true, "license": "MPL-2.0", - "peer": true, "dependencies": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -1551,19 +1535,18 @@ } }, "node_modules/@nomicfoundation/hardhat-verify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.11.tgz", - "integrity": "sha512-lGIo4dNjVQFdsiEgZp3KP6ntLiF7xJEJsbNHfSyIiFCyI0Yv0518ElsFtMC5uCuHEChiBBMrib9jWQvHHT+X3Q==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.12.tgz", + "integrity": "sha512-Lg3Nu7DCXASQRVI/YysjuAX2z8jwOCbS0w5tz2HalWGSTZThqA0v9N0v0psHbKNqzPJa8bNOeapIVSziyJTnAg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@ethersproject/address": "^5.0.2", "cbor": "^8.1.0", - "chalk": "^2.4.2", "debug": "^4.1.1", "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.1.0", "semver": "^6.3.0", "table": "^6.8.0", "undici": "^5.14.0" @@ -1573,9 +1556,9 @@ } }, "node_modules/@nomicfoundation/ignition-core": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.7.tgz", - "integrity": "sha512-C4/0V/q2gNxKDt88cMr+Oxlf4NINQ7QgmJyciQ1/6UdCRUg+/Pgdgpd3vgGXQVTotq50Q/BU4ofNUAD/8HRqtg==", + "version": "0.15.9", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.9.tgz", + "integrity": "sha512-X8W+7UP/UQPorpHUnGvA1OdsEr/edGi8tDpNwEqzaLm83FMZVbRWdOsr3vNICHN2XMzNY/xIm18Cx7xGKL2PQw==", "dev": true, "license": "MIT", "peer": true, @@ -1672,9 +1655,9 @@ } }, "node_modules/@nomicfoundation/ignition-ui": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.7.tgz", - "integrity": "sha512-pj2LmXylgbHOTNrkFqFrre/FAOjcwYl4VKIKVH/QMMBH/DatbiT8aC5n9o2fbLD8uwlPEesD+uXZuKCE71KFBg==", + "version": "0.15.9", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.9.tgz", + "integrity": "sha512-8lzbT7gpJ5PoowPQDQilkwdyqBviUKDMoHp/5rhgnwG1bDslnCS+Lxuo6s9R2akWu9LtEL14dNyqQb6WsURTag==", "dev": true, "peer": true }, @@ -1934,7 +1917,6 @@ "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } @@ -1944,32 +1926,28 @@ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@typechain/ethers-v6": { "version": "0.5.1", @@ -1977,7 +1955,6 @@ "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lodash": "^4.17.15", "ts-essentials": "^7.0.1" @@ -1994,7 +1971,6 @@ "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fs-extra": "^9.1.0" }, @@ -2011,7 +1987,6 @@ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -2028,7 +2003,6 @@ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "universalify": "^2.0.0" }, @@ -2042,7 +2016,6 @@ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 10.0.0" } @@ -2062,8 +2035,7 @@ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/chai-as-promised": { "version": "7.1.8", @@ -2071,7 +2043,6 @@ "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/chai": "*" } @@ -2082,7 +2053,6 @@ "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*" } @@ -2093,7 +2063,6 @@ "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*" } @@ -2104,7 +2073,6 @@ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -2122,16 +2090,14 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/mocha": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.9.tgz", - "integrity": "sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==", + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/node": { "version": "22.9.0", @@ -2158,16 +2124,14 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/qs": { "version": "6.9.17", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/secp256k1": { "version": "4.0.6", @@ -2184,8 +2148,7 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/acorn": { "version": "8.14.0", @@ -2193,7 +2156,6 @@ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2207,7 +2169,6 @@ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "acorn": "^8.11.0" }, @@ -2230,8 +2191,7 @@ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/agent-base": { "version": "6.0.2", @@ -2266,7 +2226,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2285,7 +2244,6 @@ "dev": true, "license": "BSD-3-Clause OR MIT", "optional": true, - "peer": true, "engines": { "node": ">=0.4.2" } @@ -2354,8 +2312,7 @@ "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", "dev": true, - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/anymatch": { "version": "3.1.3", @@ -2376,8 +2333,7 @@ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", @@ -2392,7 +2348,6 @@ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -2403,7 +2358,6 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -2414,7 +2368,6 @@ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -2424,8 +2377,7 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/assertion-error": { "version": "1.1.0", @@ -2433,7 +2385,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -2444,7 +2395,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -2454,16 +2404,14 @@ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -2471,18 +2419,16 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -2511,8 +2457,7 @@ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.3.0", @@ -2752,19 +2697,29 @@ "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -2791,8 +2746,7 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/cbor": { "version": "8.1.0", @@ -2800,7 +2754,6 @@ "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "nofilter": "^3.1.0" }, @@ -2814,7 +2767,6 @@ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -2834,7 +2786,6 @@ "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, "license": "WTFPL", - "peer": true, "dependencies": { "check-error": "^1.0.2" }, @@ -2863,7 +2814,6 @@ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": "*" } @@ -2874,7 +2824,6 @@ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "get-func-name": "^2.0.2" }, @@ -2945,7 +2894,6 @@ "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "object-assign": "^4.1.0", "string-width": "^2.1.1" @@ -2963,7 +2911,6 @@ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -2974,7 +2921,6 @@ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -2985,7 +2931,6 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -3000,7 +2945,6 @@ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^3.0.0" }, @@ -3043,7 +2987,6 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.1.90" } @@ -3054,7 +2997,6 @@ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -3075,7 +3017,6 @@ "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -3092,7 +3033,6 @@ "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-back": "^4.0.2", "chalk": "^2.4.2", @@ -3109,7 +3049,6 @@ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -3120,7 +3059,6 @@ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -3151,7 +3089,6 @@ "node >= 0.8" ], "license": "MIT", - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -3165,7 +3102,6 @@ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3181,8 +3117,7 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/concat-stream/node_modules/string_decoder": { "version": "1.1.1", @@ -3190,7 +3125,6 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -3210,8 +3144,7 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/create-hash": { "version": "1.2.0", @@ -3247,8 +3180,7 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/crypt": { "version": "0.0.2", @@ -3256,7 +3188,6 @@ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": "*" } @@ -3265,8 +3196,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/debug": { "version": "4.3.7", @@ -3305,7 +3235,6 @@ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "type-detect": "^4.0.0" }, @@ -3319,7 +3248,6 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4.0.0" } @@ -3329,27 +3257,7 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/delayed-stream": { "version": "1.0.0", @@ -3357,7 +3265,6 @@ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.4.0" } @@ -3387,7 +3294,6 @@ "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", "dev": true, - "peer": true, "dependencies": { "heap": ">= 0.2.0" }, @@ -3401,7 +3307,6 @@ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "path-type": "^4.0.0" }, @@ -3409,6 +3314,33 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -3464,15 +3396,11 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -3483,7 +3411,19 @@ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "license": "MIT", - "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, "engines": { "node": ">= 0.4" } @@ -3514,7 +3454,6 @@ "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "esprima": "^2.7.1", "estraverse": "^1.9.1", @@ -3538,7 +3477,6 @@ "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", "dev": true, "optional": true, - "peer": true, "dependencies": { "amdefine": ">=0.0.4" }, @@ -3552,7 +3490,6 @@ "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -3566,7 +3503,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3577,7 +3513,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3588,7 +3523,6 @@ "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@solidity-parser/parser": "^0.14.0", "axios": "^1.5.1", @@ -3629,7 +3563,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", @@ -3669,18 +3602,16 @@ "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "^1.4.0" } }, "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^14.21.3 || >=16" }, @@ -3778,9 +3709,9 @@ } }, "node_modules/ethers": { - "version": "6.13.4", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz", - "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==", + "version": "6.13.5", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.5.tgz", + "integrity": "sha512-+knKNieu5EKRThQJWwqaJ10a6HE9sSehGeqWN65//wE7j47ZpFhKAnHB/JJFibwwg61I/koxaPsXbXpD/skNOQ==", "dev": true, "funding": [ { @@ -3793,7 +3724,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", @@ -3813,7 +3743,6 @@ "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 16" }, @@ -3827,7 +3756,6 @@ "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.19.2" } @@ -3837,8 +3765,7 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true, - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/ethers/node_modules/ws": { "version": "8.17.1", @@ -3846,7 +3773,6 @@ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -3869,7 +3795,6 @@ "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" @@ -3884,8 +3809,7 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ethjs-util": { "version": "0.1.6", @@ -3918,22 +3842,20 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -3944,24 +3866,31 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "reusify": "^1.0.4" } @@ -3985,7 +3914,6 @@ "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-back": "^3.0.1" }, @@ -4043,7 +3971,6 @@ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -4080,8 +4007,7 @@ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -4111,7 +4037,6 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4132,24 +4057,27 @@ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4164,18 +4092,30 @@ "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ghost-testrpc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "chalk": "^2.4.2", "node-emoji": "^1.10.0" @@ -4225,7 +4165,6 @@ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "global-prefix": "^3.0.0" }, @@ -4239,7 +4178,6 @@ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -4255,7 +4193,6 @@ "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -4271,14 +4208,13 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4297,7 +4233,6 @@ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -4388,7 +4323,6 @@ "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-uniq": "1.0.3", "eth-gas-reporter": "^0.2.25", @@ -4408,41 +4342,12 @@ "node": ">=4" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 0.4" }, @@ -4482,7 +4387,6 @@ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -4505,8 +4409,7 @@ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/hmac-drbg": { "version": "1.0.1", @@ -4526,7 +4429,6 @@ "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "caseless": "^0.12.0", "concat-stream": "^1.6.2", @@ -4560,7 +4462,6 @@ "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/node": "^10.0.3" } @@ -4570,8 +4471,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -4606,7 +4506,6 @@ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 4" } @@ -4664,8 +4563,17 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" + }, + "node_modules/install": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", + "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } }, "node_modules/interpret": { "version": "1.4.0", @@ -4673,7 +4581,6 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 0.10" } @@ -4783,16 +4690,14 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/js-sha3": { "version": "0.8.0", @@ -4819,8 +4724,7 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-stream-stringify": { "version": "3.1.6", @@ -4865,12 +4769,11 @@ } }, "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz", + "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -4897,7 +4800,6 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4919,7 +4821,6 @@ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -4954,32 +4855,28 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", @@ -5080,7 +4977,6 @@ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "get-func-name": "^2.0.1" } @@ -5097,16 +4993,24 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, "license": "MIT", - "peer": true + "engines": { + "node": ">= 0.4" + } }, "node_modules/md5.js": { "version": "1.3.5", @@ -5135,7 +5039,6 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 8" } @@ -5145,8 +5048,7 @@ "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -5154,7 +5056,6 @@ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -5169,7 +5070,6 @@ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 0.6" } @@ -5180,7 +5080,6 @@ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "mime-db": "1.52.0" }, @@ -5221,7 +5120,6 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5232,7 +5130,6 @@ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "minimist": "^1.2.6" }, @@ -5507,81 +5404,2743 @@ "ndjson": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=10" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-11.0.0.tgz", + "integrity": "sha512-Ed/ylWXSKXx058WUqXYlgb3pafCqXL5vWzZEvwCKFsBl7OYQlNn/u4ESW+ON+OG6Q+uCRLPTDGHreX6aJEDj7A==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which" + ], + "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^9.0.0", + "@npmcli/config": "^10.0.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.2", + "@npmcli/package-json": "^6.1.0", + "@npmcli/promise-spawn": "^8.0.2", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "@sigstore/tuf": "^3.0.0", + "abbrev": "^3.0.0", + "archy": "~1.0.0", + "cacache": "^19.0.1", + "chalk": "^5.3.0", + "ci-info": "^4.1.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^8.0.2", + "ini": "^5.0.0", + "init-package-json": "^8.0.0", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^10.0.0", + "libnpmdiff": "^8.0.0", + "libnpmexec": "^10.0.0", + "libnpmfund": "^7.0.0", + "libnpmorg": "^8.0.0", + "libnpmpack": "^9.0.0", + "libnpmpublish": "^11.0.0", + "libnpmsearch": "^9.0.0", + "libnpmteam": "^8.0.0", + "libnpmversion": "^8.0.0", + "make-fetch-happen": "^14.0.3", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^11.0.0", + "nopt": "^8.0.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.1", + "npm-package-arg": "^12.0.1", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.2", + "npm-user-validate": "^3.0.0", + "p-map": "^7.0.3", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^4.0.0", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^12.0.0", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^6.0.0", + "which": "^5.0.0" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^9.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^8.0.0", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "ssri": "^12.0.0", + "treeverse": "^3.0.0", + "walk-up-path": "^4.0.0" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "ci-info": "^4.0.0", + "ini": "^5.0.0", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "walk-up-path": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "9.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "19.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.1.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/diff": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^6.1.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "binary-extensions": "^3.0.0", + "diff": "^7.0.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0", + "tar": "^6.2.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0", + "@npmcli/run-script": "^9.0.1", + "ci-info": "^4.0.0", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", + "semver": "^7.3.7", + "walk-up-path": "^4.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^9.0.0", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^21.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", + "semver": "^7.3.7", + "sigstore": "^3.0.0", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "9.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^18.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "14.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/nopt/node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "7.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "12.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "10.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "11.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "18.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "21.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^10.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "5.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.20", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "12.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/npm/node_modules/which": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", "dev": true, + "inBundle": true, "license": "MIT", - "peer": true + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, + "inBundle": true, "license": "MIT" }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", "dev": true, + "inBundle": true, "license": "MIT", - "peer": true, "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", - "dev": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", "dev": true, + "inBundle": true, "license": "MIT", - "peer": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=12.19" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "node_modules/npm/node_modules/write-file-atomic": { + "version": "6.0.0", "dev": true, + "inBundle": true, "license": "ISC", - "peer": true, "dependencies": { - "abbrev": "1" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "inBundle": true, + "license": "ISC" }, "node_modules/number-to-bn": { "version": "1.7.0", @@ -5589,7 +8148,6 @@ "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -5604,8 +8162,7 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", @@ -5613,18 +8170,16 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 0.4" }, @@ -5655,7 +8210,6 @@ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -5673,8 +8227,7 @@ "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/os-tmpdir": { "version": "1.0.2", @@ -5742,8 +8295,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/path-exists": { "version": "3.0.0", @@ -5778,7 +8330,6 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -5789,7 +8340,6 @@ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -5811,6 +8361,13 @@ "node": ">=0.12" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -5830,7 +8387,6 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -5840,7 +8396,6 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8.0" } @@ -5851,7 +8406,6 @@ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -5867,8 +8421,7 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/promise": { "version": "8.3.0", @@ -5876,7 +8429,6 @@ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asap": "~2.0.6" } @@ -5901,16 +8453,14 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "side-channel": "^1.0.6" }, @@ -5940,8 +8490,7 @@ "url": "https://feross.org/support" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", @@ -6003,7 +8552,6 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "peer": true, "dependencies": { "resolve": "^1.1.6" }, @@ -6017,7 +8565,6 @@ "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "minimatch": "^3.0.5" }, @@ -6031,7 +8578,6 @@ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -6042,7 +8588,6 @@ "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "req-from": "^2.0.0" }, @@ -6056,7 +8601,6 @@ "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "resolve-from": "^3.0.0" }, @@ -6080,7 +8624,6 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -6104,7 +8647,6 @@ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -6115,7 +8657,6 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -6165,7 +8706,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -6204,7 +8744,6 @@ "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "abbrev": "1.0.x", "async": "1.x", @@ -6231,7 +8770,6 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -6243,7 +8781,6 @@ "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "inflight": "^1.0.4", "inherits": "2", @@ -6261,7 +8798,6 @@ "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -6272,7 +8808,6 @@ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -6287,7 +8822,6 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6301,8 +8835,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/sc-istanbul/node_modules/supports-color": { "version": "3.2.3", @@ -6310,7 +8843,6 @@ "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^1.0.0" }, @@ -6391,25 +8923,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -6444,7 +8957,6 @@ "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "charenc": ">= 0.0.1", "crypt": ">= 0.0.1" @@ -6459,7 +8971,6 @@ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -6473,17 +8984,73 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -6506,7 +9073,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -6517,7 +9083,6 @@ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6536,7 +9101,6 @@ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6553,7 +9117,6 @@ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6566,8 +9129,7 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/solc": { "version": "0.8.26", @@ -6602,15 +9164,14 @@ } }, "node_modules/solidity-coverage": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", - "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.14.tgz", + "integrity": "sha512-ItAAObe5GaEOp20kXC2BZRnph+9P7Rtoqg2mQc2SXGEHgSDF2wWd1Wxz3ntzQWXkbCtIIGdJT918HG00cObwbA==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.18.0", + "@solidity-parser/parser": "^0.19.0", "chalk": "^2.4.2", "death": "^1.1.0", "difflib": "^0.2.4", @@ -6637,12 +9198,11 @@ } }, "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/solidity-coverage/node_modules/fs-extra": { "version": "8.1.0", @@ -6650,7 +9210,6 @@ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -6666,7 +9225,6 @@ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", - "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -6711,8 +9269,7 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/stacktrace-parser": { "version": "0.1.10", @@ -6762,8 +9319,7 @@ "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", "dev": true, - "license": "WTFPL OR MIT", - "peer": true + "license": "WTFPL OR MIT" }, "node_modules/string-width": { "version": "4.2.3", @@ -6839,7 +9395,6 @@ "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "http-response-object": "^3.0.1", "sync-rpc": "^1.2.1", @@ -6855,18 +9410,16 @@ "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "get-port": "^3.1.0" } }, "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -6884,7 +9437,6 @@ "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", @@ -6901,7 +9453,6 @@ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -6912,7 +9463,6 @@ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -6923,7 +9473,6 @@ "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/concat-stream": "^1.6.0", "@types/form-data": "0.0.33", @@ -6946,8 +9495,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/then-request/node_modules/form-data": { "version": "2.5.2", @@ -6955,7 +9503,6 @@ "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -7019,7 +9566,6 @@ "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "chalk": "^4.1.0", "command-line-args": "^5.1.1", @@ -7036,7 +9582,6 @@ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7053,7 +9598,6 @@ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7071,7 +9615,6 @@ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7084,8 +9627,7 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ts-command-line-args/node_modules/has-flag": { "version": "4.0.0", @@ -7093,7 +9635,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -7104,7 +9645,6 @@ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7118,7 +9658,6 @@ "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "typescript": ">=3.7.0" } @@ -7129,7 +9668,6 @@ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -7174,7 +9712,6 @@ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.3.1" } @@ -7213,7 +9750,6 @@ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "prelude-ls": "~1.1.2" }, @@ -7227,7 +9763,6 @@ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -7251,7 +9786,6 @@ "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prettier": "^2.1.1", "debug": "^4.3.1", @@ -7278,7 +9812,6 @@ "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7300,7 +9833,6 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -7313,16 +9845,14 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7337,7 +9867,6 @@ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -7349,7 +9878,6 @@ "dev": true, "license": "BSD-2-Clause", "optional": true, - "peer": true, "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -7402,8 +9930,7 @@ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/util-deprecate": { "version": "1.0.2", @@ -7427,8 +9954,7 @@ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/web3-utils": { "version": "1.10.4", @@ -7436,7 +9962,6 @@ "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", "dev": true, "license": "LGPL-3.0", - "peer": true, "dependencies": { "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", @@ -7457,7 +9982,6 @@ "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "1.4.0" }, @@ -7471,7 +9995,6 @@ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 16" }, @@ -7485,7 +10008,6 @@ "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", @@ -7501,7 +10023,6 @@ "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" @@ -7516,7 +10037,6 @@ "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", @@ -7530,7 +10050,6 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7557,7 +10076,6 @@ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -7567,8 +10085,7 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/wordwrapjs": { "version": "4.0.1", @@ -7576,7 +10093,6 @@ "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" @@ -7591,7 +10107,6 @@ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -7747,7 +10262,6 @@ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } diff --git a/Multi Sig Wallet/package.json b/Multi Sig Wallet/package.json index 4b7db28d..1e185344 100644 --- a/Multi Sig Wallet/package.json +++ b/Multi Sig Wallet/package.json @@ -9,7 +9,28 @@ "license": "ISC", "description": "", "devDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.8", + "@nomicfoundation/hardhat-ethers": "^3.0.8", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.9", + "@nomicfoundation/hardhat-network-helpers": "^1.0.12", "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "hardhat": "^2.22.15" + "@nomicfoundation/hardhat-verify": "^2.0.12", + "@typechain/ethers-v6": "^0.5.1", + "@typechain/hardhat": "^9.1.0", + "@types/chai": "^4.3.20", + "@types/mocha": "^10.0.10", + "chai": "^4.5.0", + "ethers": "^6.13.5", + "hardhat": "^2.22.15", + "hardhat-gas-reporter": "^1.0.10", + "install": "^0.13.0", + "npm": "^11.0.0", + "solidity-coverage": "^0.8.14", + "ts-node": "^10.9.2", + "typechain": "^8.3.2", + "typescript": "^5.7.3" + }, + "dependencies": { + "dotenv": "^16.4.7" } } diff --git a/Multi Sig Wallet/test/Lock.js b/Multi Sig Wallet/test/Lock.js index f0e6ba1b..46200699 100644 --- a/Multi Sig Wallet/test/Lock.js +++ b/Multi Sig Wallet/test/Lock.js @@ -9,118 +9,119 @@ describe("Lock", function () { // We define a fixture to reuse the same setup in every test. // We use loadFixture to run this setup once, snapshot that state, // and reset Hardhat Network to that snapshot in every test. - async function deployOneYearLockFixture() { - const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60; - const ONE_GWEI = 1_000_000_000; - - const lockedAmount = ONE_GWEI; - const unlockTime = (await time.latest()) + ONE_YEAR_IN_SECS; + async function deployDefi() { // Contracts are deployed using the first signer/account by default const [owner, otherAccount] = await ethers.getSigners(); + console.log("Heyyyyyyy"); + + // const Lock = await ethers.getContractFactory("Lock"); + // const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); + + const array = ["0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"] + + const multiSig = await ethers.getContractFactory("MultiSig"); + const multiSigContract = await multiSig.deploy(array, 2); - const Lock = await ethers.getContractFactory("Lock"); - const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); + const multiSigFactory = await ethers.getContractFactory("MultiSigFactory"); + const factoryContract = await multiSigFactory.deploy("0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"); - return { lock, unlockTime, lockedAmount, owner, otherAccount }; + + return { factoryContract, multiSigContract }; } describe("Deployment", function () { - it("Should set the right unlockTime", async function () { - const { lock, unlockTime } = await loadFixture(deployOneYearLockFixture); + it("Checks if it creates pair", async function () { + const { factoryContract } = await loadFixture(deployDefi); - expect(await lock.unlockTime()).to.equal(unlockTime); - }); + const array = ["0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"] + + const pair = await factoryContract.createMultiSig(array, 2); + const pairs = await factoryContract.createMultiSig(array, 2); + const getAddress = await factoryContract.getAllDeployedMultiSigs(); + const address = await factoryContract.getOwners(getAddress[0]); + console.log(address); - it("Should set the right owner", async function () { - const { lock, owner } = await loadFixture(deployOneYearLockFixture); - expect(await lock.owner()).to.equal(owner.address); }); - it("Should receive and store the funds to lock", async function () { - const { lock, lockedAmount } = await loadFixture( - deployOneYearLockFixture - ); - expect(await ethers.provider.getBalance(lock.target)).to.equal( - lockedAmount - ); - }); - it("Should fail if the unlockTime is not in the future", async function () { - // We don't use the fixture here because we want a different deployment - const latestTime = await time.latest(); - const Lock = await ethers.getContractFactory("Lock"); - await expect(Lock.deploy(latestTime, { value: 1 })).to.be.revertedWith( - "Unlock time should be in the future" - ); - }); - }); + it("Checks if it creates pair", async function () { + const { multiSigContract } = await loadFixture(deployDefi); - describe("Withdrawals", function () { - describe("Validations", function () { - it("Should revert with the right error if called too soon", async function () { - const { lock } = await loadFixture(deployOneYearLockFixture); + // const getAddress = await multisigContract.getAllDeployedMultiSigs(); + const address = await multiSigContract.submitProposal("0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", 20000000," 0x736f6d6520737472696e67"); + console.log(address); - await expect(lock.withdraw()).to.be.revertedWith( - "You can't withdraw yet" - ); - }); - it("Should revert with the right error if called from another account", async function () { - const { lock, unlockTime, otherAccount } = await loadFixture( - deployOneYearLockFixture - ); + }); - // We can increase the time in Hardhat Network - await time.increaseTo(unlockTime); + it.only("Checks if it creates pair", async function () { + const { factoryContract, multiSigContract } = await loadFixture(deployDefi); + const array = ["0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"] - // We use lock.connect() to send a transaction from another account - await expect(lock.connect(otherAccount).withdraw()).to.be.revertedWith( - "You aren't the owner" - ); - }); + const addresses = "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"; + const functionName = "transfer"; - it("Shouldn't fail if the unlockTime has arrived and the owner calls it", async function () { - const { lock, unlockTime } = await loadFixture( - deployOneYearLockFixture - ); + const pair = await factoryContract.createMultiSig(array, 1); + const pairs = await factoryContract.createMultiSig( array, 1); - // Transactions are sent using the first signer by default - await time.increaseTo(unlockTime); + const getAddress = await factoryContract.getAllDeployedMultiSigs(); - await expect(lock.withdraw()).not.to.be.reverted; - }); - }); + const deployer = await factoryContract.getDeployer(getAddress[0]); - describe("Events", function () { - it("Should emit an event on withdrawals", async function () { - const { lock, unlockTime, lockedAmount } = await loadFixture( - deployOneYearLockFixture - ); + console.log(deployer); + + // console.log(encodedData) + console.log(getAddress[0], array[1]); + // const value = await multiSigContract.connect(getAddress[0]).fundWallet({value: ethers.parseEther("3")}); + // console.log(value); + const address = await factoryContract.submitTransaction(getAddress[0], array[0], ethers.parseEther("2"), "Pay to Dave"); + + const getProposals = await factoryContract.getAllProposals(getAddress[0]); + console.log(getProposals); + await factoryContract.confirmTransaction(getAddress[0], 0); + const proposalExecuted1 = await factoryContract.getAllProposals(getAddress[0]); + console.log(proposalExecuted1) + await factoryContract.executeTransaction(getAddress[0], 0); + const proposalExecuted = await factoryContract.getAllProposals(getAddress[0]); + console.log(proposalExecuted) - await time.increaseTo(unlockTime); - await expect(lock.withdraw()) - .to.emit(lock, "Withdrawal") - .withArgs(lockedAmount, anyValue); // We accept any value as `when` arg - }); }); - describe("Transfers", function () { - it("Should transfer the funds to the owner", async function () { - const { lock, unlockTime, lockedAmount, owner } = await loadFixture( - deployOneYearLockFixture - ); + + + // it("checks if its adds liquidity", async function () { + // const { factoryContract, cherryContract, appleContract, owner, liquidityContract} = await loadFixture(deployDefi); + // console.log("heyy"); + // await cherryContract.mint(owner.address, ethers.parseEther("10")); + // await appleContract.mint(owner.address, ethers.parseEther("10")); + // await cherryContract.approve(liquidityContract.target, ethers.parseEther("10")); + // await appleContract.approve(liquidityContract.target, ethers.parseEther("10")); + // console.log(await appleContract.balanceOf(owner.address)); + // console.log(await cherryContract.balanceOf(owner.address)); + // const pair = await liquidityContract.addLiquidity( + // cherryContract.target, + // appleContract.target, + // ethers.parseEther("1.5"), + // ethers.parseEther("1"), + // ethers.parseEther(".9"), + // ethers.parseEther("1.3") + // ); + // console.log(pair); + // }); + // it("Should receive and store the funds to lock", async function () { + // const { lock, lockedAmount } = await loadFixture( + // deployOneYearLockFixture + // ); + + // expect(await ethers.provider.getBalance(lock.target)).to.equal( + // lockedAmount + // ); + // }); - await time.increaseTo(unlockTime); - await expect(lock.withdraw()).to.changeEtherBalances( - [owner, lock], - [lockedAmount, -lockedAmount] - ); - }); - }); }); }); From a55437b7e3bd7067ce7bd7fd79ce9dbb32e705bd Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Mon, 13 Jan 2025 13:53:17 +0100 Subject: [PATCH 09/11] multisig frontend --- .../Frontend/app/dashboard/page.tsx | 6 ++- Multi Sig Wallet/Frontend/app/linkdash.tsx | 29 +++++++++++ Multi Sig Wallet/Frontend/app/page.tsx | 50 +++++++++++++------ .../wallet/{[address] => address}/page.tsx | 3 +- .../Frontend/components/DashboardLayout.tsx | 6 +-- 5 files changed, 75 insertions(+), 19 deletions(-) create mode 100644 Multi Sig Wallet/Frontend/app/linkdash.tsx rename Multi Sig Wallet/Frontend/app/wallet/{[address] => address}/page.tsx (97%) diff --git a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx index e730ea45..78770791 100644 --- a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx +++ b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx @@ -7,6 +7,8 @@ import { Button } from '@/components/ui/button' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { DashboardLayout } from '@/components/DashboardLayout' import Link from 'next/link' +import { client } from "../client"; +import {useActiveAccount } from "thirdweb/react"; // Mock data for wallets const wallets = [ @@ -22,6 +24,8 @@ export default function Dashboard() { wallet.address.toLowerCase().includes(search.toLowerCase()) ) + const activeAccount = useActiveAccount(); + return (
@@ -35,7 +39,7 @@ export default function Dashboard() {

Connected Wallet:

-

0x7890...1234

+

{activeAccount?.address || "Not Connected"}

diff --git a/Multi Sig Wallet/Frontend/app/linkdash.tsx b/Multi Sig Wallet/Frontend/app/linkdash.tsx new file mode 100644 index 00000000..d4514bbe --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/linkdash.tsx @@ -0,0 +1,29 @@ +'use client' + +import React from 'react' +import Link from 'next/link'; +import { client } from "./client"; +import {useActiveAccount } from "thirdweb/react"; + +const LinkDash = () => { + + const activeAccount = useActiveAccount(); + return ( + <> +
+ + Dashboard + +
+ + ) +} + +export default LinkDash \ No newline at end of file diff --git a/Multi Sig Wallet/Frontend/app/page.tsx b/Multi Sig Wallet/Frontend/app/page.tsx index f160ac19..d9d376db 100644 --- a/Multi Sig Wallet/Frontend/app/page.tsx +++ b/Multi Sig Wallet/Frontend/app/page.tsx @@ -1,21 +1,34 @@ -import Image from 'next/image' -import Link from 'next/link' -import { Shield, FileText, Key } from 'lucide-react' +'use cllient' + +import Image from "next/image"; +import Link from "next/link"; +import { Shield, FileText, Key } from "lucide-react"; import { client } from "./client"; import { ConnectButton } from "thirdweb/react"; +import LinkDash from "./linkdash"; -import { Button } from '@/components/ui/button' +import { Button } from "@/components/ui/button"; export default function Home() { + return (
@@ -26,7 +39,8 @@ export default function Home() { Secure Your Digital Assets with Multi-Signature Protection

- Collaborate and safeguard your funds with a decentralized multi-sig wallet. + Collaborate and safeguard your funds with a decentralized multi-sig + wallet.

@@ -105,6 +105,7 @@ export default function WalletPage({ params }: { params: { address: string } }) +
diff --git a/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx b/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx index fcf4da97..cfe867be 100644 --- a/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx +++ b/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx @@ -19,7 +19,7 @@ export function DashboardLayout({ children }: DashboardLayoutProps) {
  • - + Transactions @@ -30,12 +30,12 @@ export function DashboardLayout({ children }: DashboardLayoutProps) { Owners
  • -
  • + {/*
  • Settings -
  • + */} From 8c9a04a80a9b88923ccb607242d2cf6cc85abd17 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Mon, 13 Jan 2025 21:09:12 +0100 Subject: [PATCH 10/11] multisig frontend --- .../create/{page.tsx => createmultisig.tsx} | 20 ++--- .../Frontend/app/create/multisigcreation.tsx | 40 ++++++++++ .../Frontend/app/dashboard/page.tsx | 76 ++++++++++++------- .../Frontend/app/wallet/address/page.tsx | 56 +++++++++++++- 4 files changed, 149 insertions(+), 43 deletions(-) rename Multi Sig Wallet/Frontend/app/create/{page.tsx => createmultisig.tsx} (88%) create mode 100644 Multi Sig Wallet/Frontend/app/create/multisigcreation.tsx diff --git a/Multi Sig Wallet/Frontend/app/create/page.tsx b/Multi Sig Wallet/Frontend/app/create/createmultisig.tsx similarity index 88% rename from Multi Sig Wallet/Frontend/app/create/page.tsx rename to Multi Sig Wallet/Frontend/app/create/createmultisig.tsx index 50bdfd2f..57fa628b 100644 --- a/Multi Sig Wallet/Frontend/app/create/page.tsx +++ b/Multi Sig Wallet/Frontend/app/create/createmultisig.tsx @@ -13,9 +13,7 @@ export default function CreateMultiSigWallet() { const [requiredConfirmations, setRequiredConfirmations] = useState(1) const [isCreating, setIsCreating] = useState(false) - const handleAddOwner = () => { - setOwners([...owners, '']) - } + const handleAddOwner = () => setOwners([...owners, '']) const handleOwnerChange = (index: number, value: string) => { const newOwners = [...owners] @@ -31,19 +29,19 @@ export default function CreateMultiSigWallet() { const handleSubmit = (e: React.FormEvent) => { e.preventDefault() setIsCreating(true) - // Simulating wallet creation setTimeout(() => { console.log('Wallet created:', { name, owners, requiredConfirmations }) setIsCreating(false) - // Here you would typically redirect to the new wallet page or show a success message }, 2000) } return ( -
    - +
    + - Create Multi-Signature Wallet + + Create Multi-Signature Wallet + Set up a new multi-signature wallet by providing the required information @@ -63,7 +61,7 @@ export default function CreateMultiSigWallet() {
    {owners.map((owner, index) => ( -
    +
    handleOwnerChange(index, e.target.value)} @@ -76,7 +74,6 @@ export default function CreateMultiSigWallet() { type="button" variant="destructive" size="sm" - className="ml-2" onClick={() => handleRemoveOwner(index)} > Remove @@ -89,7 +86,7 @@ export default function CreateMultiSigWallet() { variant="outline" size="sm" onClick={handleAddOwner} - className="mt-2" + className="mt-4" > Add Owner @@ -127,4 +124,3 @@ export default function CreateMultiSigWallet() {
    ) } - diff --git a/Multi Sig Wallet/Frontend/app/create/multisigcreation.tsx b/Multi Sig Wallet/Frontend/app/create/multisigcreation.tsx new file mode 100644 index 00000000..4b9b20b7 --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/create/multisigcreation.tsx @@ -0,0 +1,40 @@ +'use client' + +import { useState } from 'react' +import { Button } from '@/components/ui/button' +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@/components/ui/dialog' +import CreateMultiSigWallet from './createmultisig' + +const MultiSigCreationModal = () => { + const [isOpen, setIsOpen] = useState(false) + + return ( +
    + + + + + + + + Create MultiSig + + + + + +
    + ) +} + +export default MultiSigCreationModal diff --git a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx index 78770791..ae849d22 100644 --- a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx +++ b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx @@ -1,45 +1,61 @@ -'use client' +"use client"; -import { useState } from 'react' -import { Search } from 'lucide-react' -import { Input } from '@/components/ui/input' -import { Button } from '@/components/ui/button' -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' -import { DashboardLayout } from '@/components/DashboardLayout' -import Link from 'next/link' +import { useState } from "react"; +import { Search } from "lucide-react"; +import { Input } from "@/components/ui/input"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { DashboardLayout } from "@/components/DashboardLayout"; +import Link from "next/link"; import { client } from "../client"; -import {useActiveAccount } from "thirdweb/react"; +import { useActiveAccount, ConnectButton } from "thirdweb/react"; +import MultiSigCreationModal from "../create/multisigcreation"; // Mock data for wallets const wallets = [ - { address: '0x1234...5678', createdAt: 'January 10, 2025', balance: '10.5 ETH' }, - { address: '0xabcd...efgh', createdAt: 'February 15, 2025', balance: '5.2 ETH' }, - { address: '0x9876...5432', createdAt: 'March 20, 2025', balance: '15.8 ETH' }, -] + { + address: "0x1234...5678", + createdAt: "January 10, 2025", + balance: "10.5 ETH", + }, + { + address: "0xabcd...efgh", + createdAt: "February 15, 2025", + balance: "5.2 ETH", + }, + { + address: "0x9876...5432", + createdAt: "March 20, 2025", + balance: "15.8 ETH", + }, +]; export default function Dashboard() { - const [search, setSearch] = useState('') + const [search, setSearch] = useState(""); - const filteredWallets = wallets.filter(wallet => + const filteredWallets = wallets.filter((wallet) => wallet.address.toLowerCase().includes(search.toLowerCase()) - ) + ); const activeAccount = useActiveAccount(); return (
    -

    Wallet Dashboard

    - -
    +

    Wallet Dashboard

    + {/* */} + {activeAccount?.address ? ( + + ) : ( + + )} +

    Connected Wallet:

    -

    {activeAccount?.address || "Not Connected"}

    +

    + {activeAccount?.address || "Not Connected"} +

    @@ -56,9 +72,14 @@ export default function Dashboard() {
    {filteredWallets.map((wallet, index) => ( - + - {wallet.address} + + {wallet.address} +

    Created on: {wallet.createdAt}

    @@ -69,6 +90,5 @@ export default function Dashboard() {
    - ) + ); } - diff --git a/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx b/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx index d33bdced..d52ec856 100644 --- a/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx +++ b/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx @@ -22,6 +22,8 @@ import { Label } from '@/components/ui/label' import { DashboardLayout } from '@/components/DashboardLayout' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { AlertCircle, CheckCircle, XCircle } from 'lucide-react' +import { client } from "../../client" +import { useActiveAccount, ConnectButton } from "thirdweb/react"; // Mock data for transactions const transactions = [ @@ -31,7 +33,17 @@ const transactions = [ ] export default function WalletPage({ params }: { params: { address: string } }) { - const [isOpen, setIsOpen] = useState(false) + const activeAccount = useActiveAccount(); + + const [isOpen, setIsOpen] = useState(false); + const [isAdd, setIsAdd] = useState(false); + const [isWallet, setIsWallet] = useState(""); + const [tempAddress, setTempAddress] = useState(""); // Temporary variable for input + + const handleSubmit = () => { + setIsWallet(tempAddress); // Update isWallet only after submitting + console.log("Wallet Address Added:", tempAddress); + }; const getStatusIcon = (status: string) => { switch (status) { @@ -48,7 +60,45 @@ export default function WalletPage({ params }: { params: { address: string } }) return ( -

    Wallet: {params.address}

    +
    +
    +

    + Wallet: +

    +

    {activeAccount?.address || "Not connected"}

    +
    + + {activeAccount?.address ? ( + <> + + + + + + + Interact with MultiSig + +
    +
    + + setTempAddress(e.target.value)} + className="bg-blue-800 border-blue-700 text-white" + /> +
    + + +
    +
    +

    {isWallet}

    + + ) : ( + + )} +
    +
    @@ -69,7 +119,7 @@ export default function WalletPage({ params }: { params: { address: string } }) - Pending Transactions + Confirmations

    2

    From a7760d7378014fd9d1da0a1a7b2e68c8e91b1873 Mon Sep 17 00:00:00 2001 From: "David Chukwudi Onyeka (Nokia)" Date: Thu, 16 Jan 2025 07:53:37 +0100 Subject: [PATCH 11/11] multisig --- .../Frontend/app/create/createmultisig.tsx | 110 +++++++++++++----- .../Frontend/app/dashboard/Data.tsx | 90 ++++++++++++++ .../Frontend/app/dashboard/page.tsx | 53 +++++---- .../Frontend/app/wallet/address/page.tsx | 109 +++++++++++++++-- .../Frontend/components/DashboardLayout.tsx | 1 + Multi Sig Wallet/contracts/MultiSig.sol | 37 +++--- .../contracts/MultiSigFactory.sol | 67 ++++++----- .../contracts/interfaces/IMultiSig.sol | 37 ++++++ Multi Sig Wallet/scripts/deploy-multisig.js | 59 ++++++++++ Multi Sig Wallet/test/Lock.js | 16 ++- 10 files changed, 465 insertions(+), 114 deletions(-) create mode 100644 Multi Sig Wallet/Frontend/app/dashboard/Data.tsx create mode 100644 Multi Sig Wallet/contracts/interfaces/IMultiSig.sol create mode 100644 Multi Sig Wallet/scripts/deploy-multisig.js diff --git a/Multi Sig Wallet/Frontend/app/create/createmultisig.tsx b/Multi Sig Wallet/Frontend/app/create/createmultisig.tsx index 57fa628b..7ef83045 100644 --- a/Multi Sig Wallet/Frontend/app/create/createmultisig.tsx +++ b/Multi Sig Wallet/Frontend/app/create/createmultisig.tsx @@ -1,39 +1,73 @@ -'use client' +"use client"; -import { useState } from 'react' -import { Button } from '@/components/ui/button' -import { Input } from '@/components/ui/input' -import { Label } from '@/components/ui/label' -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' -import { Loader2 } from 'lucide-react' +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { Loader2 } from "lucide-react"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; +import { useSendTransaction, useReadContract } from "thirdweb/react"; +import { client } from "../client"; export default function CreateMultiSigWallet() { - const [name, setName] = useState('') - const [owners, setOwners] = useState(['']) - const [requiredConfirmations, setRequiredConfirmations] = useState(1) - const [isCreating, setIsCreating] = useState(false) + const [name, setName] = useState(""); + const [owners, setOwners] = useState([""]); + const [requiredConfirmations, setRequiredConfirmations] = useState(1); + const [isCreating, setIsCreating] = useState(false); - const handleAddOwner = () => setOwners([...owners, '']) + const handleAddOwner = () => setOwners([...owners, ""]); const handleOwnerChange = (index: number, value: string) => { - const newOwners = [...owners] - newOwners[index] = value - setOwners(newOwners) - } + const newOwners = [...owners]; + newOwners[index] = value; + setOwners(newOwners); + }; const handleRemoveOwner = (index: number) => { - const newOwners = owners.filter((_, i) => i !== index) - setOwners(newOwners) - } + const newOwners = owners.filter((_, i) => i !== index); + setOwners(newOwners); + }; + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: "0x3c7eD317074CB301a421aCa92Ad37941f7F030F8", + chain: chain, + }); + + const { mutate: sendTransaction } = useSendTransaction(); + + const CreateMultiSig = async (address: string[], amount: bigint) => { + const approve = prepareContractCall({ + contract, + method: + "function createMultiSig(address[] memory _owners, uint256 _noOfConfirmations)", + params: [address, amount], + }); + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; const handleSubmit = (e: React.FormEvent) => { - e.preventDefault() - setIsCreating(true) + e.preventDefault(); + setIsCreating(true); setTimeout(() => { - console.log('Wallet created:', { name, owners, requiredConfirmations }) - setIsCreating(false) - }, 2000) - } + console.log("Wallet created:", { name, owners, requiredConfirmations }); + setIsCreating(false); + }, 2000); + }; return (
    @@ -43,7 +77,8 @@ export default function CreateMultiSigWallet() { Create Multi-Signature Wallet - Set up a new multi-signature wallet by providing the required information + Set up a new multi-signature wallet by providing the required + information @@ -92,14 +127,18 @@ export default function CreateMultiSigWallet() {
    - + setRequiredConfirmations(parseInt(e.target.value))} + onChange={(e) => + setRequiredConfirmations(parseInt(e.target.value)) + } className="bg-blue-700 border-blue-600 text-white" required /> @@ -108,6 +147,17 @@ export default function CreateMultiSigWallet() { type="submit" className="w-full bg-neon-green text-blue-900 hover:bg-neon-green/90" disabled={isCreating} + onClick={async () => { + try { + const success = await CreateMultiSig( + owners, + BigInt(requiredConfirmations) + ); + alert(`Sucess: ${success}`) + } catch (e) { + alert(e); + } + }} > {isCreating ? ( <> @@ -115,12 +165,12 @@ export default function CreateMultiSigWallet() { Creating... ) : ( - 'Create Wallet' + "Create Wallet" )}
    - ) + ); } diff --git a/Multi Sig Wallet/Frontend/app/dashboard/Data.tsx b/Multi Sig Wallet/Frontend/app/dashboard/Data.tsx new file mode 100644 index 00000000..630a0704 --- /dev/null +++ b/Multi Sig Wallet/Frontend/app/dashboard/Data.tsx @@ -0,0 +1,90 @@ +"use client"; + +import { useState } from "react"; +import { Search, LoaderIcon } from "lucide-react"; +import { Input } from "@/components/ui/input"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { DashboardLayout } from "@/components/DashboardLayout"; +import Link from "next/link"; +import { client } from "../client"; +import { useActiveAccount, ConnectButton, useReadContract, useSendTransaction } from "thirdweb/react"; +import MultiSigCreationModal from "../create/multisigcreation"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; + +const Data = ({setWallet}: {setWallet: (amount: any) => void}) => { + + const activeAccount = useActiveAccount(); + + const { mutate: sendTransaction } = useSendTransaction(); + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: "0x3c7eD317074CB301a421aCa92Ad37941f7F030F8", + chain: chain, + }); + + const SubmitTxn = async (addressSig: string, addressTo: string, amount: bigint, description: string) => { + const approve = prepareContractCall({ + contract, + method: + "function submitTransaction(address multisigAddress, address _to, uint256 _value, string memory _description)", + params: [addressSig, addressTo, amount, description], + }); + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + + // const { data: Wallets, isLoading } = useReadContract({ + // contract, + // method: "function getAllProposals() returns ((address proposer, address to, uint256 value, string description, uint256 noOfConfirmations, bool status)[] memory)", + // params: [], + // }); + + const { data, } = useReadContract({ + contract, + method: "function getDeployersWallets(address deployer) returns ((address walletAddress, uint256 timeCreated, uint256 balance)[] memory)", + params: [activeAccount?.address as string], + }); + + const { data: testing, } = useReadContract({ + contract, + method: "function getAllDeployedMultiSigs() returns (address[] memory)", + params: [], + }); + + + const { data: another, } = useReadContract({ + contract, + method: "function getOwners(address) returns (address[] memory)", + params: ["0xAe16A259c208158698D6a4b213aA9D1129EC370a"], + }); + + + return ( +
    + +
    + ) +} + +export default Data diff --git a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx index ae849d22..daa8362c 100644 --- a/Multi Sig Wallet/Frontend/app/dashboard/page.tsx +++ b/Multi Sig Wallet/Frontend/app/dashboard/page.tsx @@ -1,15 +1,16 @@ "use client"; import { useState } from "react"; -import { Search } from "lucide-react"; +import { Search, LoaderIcon } from "lucide-react"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { DashboardLayout } from "@/components/DashboardLayout"; import Link from "next/link"; import { client } from "../client"; -import { useActiveAccount, ConnectButton } from "thirdweb/react"; +import { useActiveAccount, ConnectButton} from "thirdweb/react"; import MultiSigCreationModal from "../create/multisigcreation"; +import Data from "./Data"; // Mock data for wallets const wallets = [ @@ -32,6 +33,7 @@ const wallets = [ export default function Dashboard() { const [search, setSearch] = useState(""); + const [wallet, setWallet] = useState<{ walletAddress: string; timeCreated: bigint; balance: bigint; }[]>([]);; const filteredWallets = wallets.filter((wallet) => wallet.address.toLowerCase().includes(search.toLowerCase()) @@ -45,18 +47,20 @@ export default function Dashboard() {

    Wallet Dashboard

    {/* */} {activeAccount?.address ? ( - - ) : ( - - )} + + ) : ( + + )}
    -

    Connected Wallet:

    +

    Connected Wallettt:

    {activeAccount?.address || "Not Connected"}

    + +
    - {filteredWallets.map((wallet, index) => ( - - - - {wallet.address} - - - -

    Created on: {wallet.createdAt}

    -

    Balance: {wallet.balance}

    -
    -
    - ))} -
    + {wallet.map((wallet, index) => ( + + + + {wallet.walletAddress} + + + +

    Created on: {wallet.timeCreated}

    +

    Balance: {wallet.balance}

    +
    +
    + ))} +
    +
    ); diff --git a/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx b/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx index d52ec856..b41c2f7a 100644 --- a/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx +++ b/Multi Sig Wallet/Frontend/app/wallet/address/page.tsx @@ -23,7 +23,9 @@ import { DashboardLayout } from '@/components/DashboardLayout' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { AlertCircle, CheckCircle, XCircle } from 'lucide-react' import { client } from "../../client" -import { useActiveAccount, ConnectButton } from "thirdweb/react"; +import { useActiveAccount, ConnectButton, useSendTransaction, useReadContract } from "thirdweb/react"; +import { defineChain, getContract, prepareContractCall } from "thirdweb"; +import { Description } from '@radix-ui/react-dialog' // Mock data for transactions const transactions = [ @@ -32,13 +34,81 @@ const transactions = [ { id: '3', recipient: '0x9876...5432', value: '2.0', status: 'Rejected', confirmations: 2 }, ] + + export default function WalletPage({ params }: { params: { address: string } }) { + + const chain = defineChain(1115); + + const contract = getContract({ + client, + address: "0x3c7eD317074CB301a421aCa92Ad37941f7F030F8", + chain: chain, + }); + + const { mutate: sendTransaction } = useSendTransaction(); + + const CreateMultiSig = async (address: string[], amount: bigint) => { + const approve = prepareContractCall({ + contract, + method: "function createMultiSig(address[] memory _owners, uint256 _noOfConfirmations)", + params: [address, amount], + }); + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + + const { data: testing, } = useReadContract({ + contract, + method: "function getAllDeployedMultiSigs() returns (address[] memory)", + params: [], + }); + + const SubmitTxn = async (addressSig: string, addressTo: string, amount: bigint, description: string) => { + const approve = prepareContractCall({ + contract, + method: + "function submitTransaction(address multisigAddress, address _to, uint256 _value, string memory _description)", + params: [addressSig, addressTo, amount, description], + }); + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + + + const ConfirmTxn = async (addressSig: string, index: bigint) => { + const approve = prepareContractCall({ + contract, + method: + "function confirmTransaction(address multisigAddress, uint256 _proposalIndex)", + params: [addressSig, index], + }); + + return new Promise((resolve, reject) => { + sendTransaction(approve, { + onSuccess: () => resolve(true), + onError: (error) => reject(error), + }); + }); + }; + const activeAccount = useActiveAccount(); const [isOpen, setIsOpen] = useState(false); const [isAdd, setIsAdd] = useState(false); const [isWallet, setIsWallet] = useState(""); const [tempAddress, setTempAddress] = useState(""); // Temporary variable for input + const [recipient, setRecipient] = useState(""); + const [value, setValue] = useState(""); + const [description, setDescription] = useState(""); const handleSubmit = () => { setIsWallet(tempAddress); // Update isWallet only after submitting @@ -139,21 +209,46 @@ export default function WalletPage({ params }: { params: { address: string } })
    - + setRecipient(e.target.value)}/>
    - - + + setValue(e.target.value)}/>
    - + setDescription(e.target.value)} />
    - + + - +
    diff --git a/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx b/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx index cfe867be..de07499e 100644 --- a/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx +++ b/Multi Sig Wallet/Frontend/components/DashboardLayout.tsx @@ -39,6 +39,7 @@ export function DashboardLayout({ children }: DashboardLayoutProps) { +
    {children}
    diff --git a/Multi Sig Wallet/contracts/MultiSig.sol b/Multi Sig Wallet/contracts/MultiSig.sol index 0a6692ad..0625e5b6 100644 --- a/Multi Sig Wallet/contracts/MultiSig.sol +++ b/Multi Sig Wallet/contracts/MultiSig.sol @@ -18,6 +18,8 @@ contract MultiSig { address private deployer; address[] private owners; uint private noOfConfirmationsNeeded; + address private immutable sigFactory; + uint256 public proposalIndex = 0; // Making it more complex by adding time periods for when proposals expires // enum Status { @@ -38,11 +40,11 @@ contract MultiSig { bool status; } - mapping(uint256 => Transaction) private proposalByIndex; + mapping(uint256 => Transaction) public proposalByIndex; mapping(address => bool) private isOwner; mapping(address => mapping(uint256 => bool)) private confirmedByIndex; - Transaction[] private transactions; + Transaction[] public transactions; modifier onlyOwners() { if(!isOwner[msg.sender]) revert MultiSig__NotOwner(); @@ -54,7 +56,16 @@ contract MultiSig { _; } - constructor(address[] memory _owners, uint256 _noOfConfirmationsNeeded) { + constructor() { + sigFactory = msg.sender; + } + + + // Init function to be called only once by factory + + function init (address[] memory _owners, uint256 _noOfConfirmationsNeeded) external { + + if(sigFactory != msg.sender) revert MultiSig__NotOwner(); // Include your address if needed to perform the functions before deploying! @@ -71,21 +82,21 @@ contract MultiSig { } } - function submitProposal(address _to, uint256 _value, string memory _description) public onlyOwners returns (bool) { - - uint256 proposalIndex = transactions.length; + function submitProposal(address _to, uint256 _value, string memory _description) public returns (bool) { Transaction memory transaction = Transaction(msg.sender, _to, _value, _description, 0, false); transactions.push(transaction); proposalByIndex[proposalIndex] = transaction; - return false; + proposalIndex += 1; + + return true; // emit ProposalSubmitted(); } - function confirmProposal(uint256 _proposalIndex) public onlyOwners proposalAvailable(_proposalIndex) returns (bool) { + function confirmProposal(uint256 _proposalIndex) public /**onlyOwners*/ proposalAvailable(_proposalIndex) returns (bool) { if(confirmedByIndex[msg.sender][_proposalIndex]) revert MultiSig__AlreadyConfirmed(); @@ -93,12 +104,14 @@ contract MultiSig { if(transaction.status) revert MultiSig__AlreadyExecuted(); transaction.noOfConfirmations = transaction.noOfConfirmations + 1; + transactions[_proposalIndex].noOfConfirmations += 1; + confirmedByIndex[msg.sender][_proposalIndex] = true; // emit Confirmedproposal() } - function revokeConfirmedProposal(uint256 _proposalIndex) public onlyOwners proposalAvailable(_proposalIndex) returns (bool) { + function revokeConfirmedProposal(uint256 _proposalIndex) public /**onlyOwners*/ proposalAvailable(_proposalIndex) returns (bool) { //TODO: Require incase the proposal is executed, it should revert if(!confirmedByIndex[msg.sender][_proposalIndex]) revert MultiSig__NotConfirmed(); @@ -112,7 +125,7 @@ contract MultiSig { // emit RevokedProposal() } - function executeProposal(uint _proposalIndex) public onlyOwners proposalAvailable(_proposalIndex) returns (bool) { + function executeProposal(uint _proposalIndex) public /**onlyOwners*/ proposalAvailable(_proposalIndex) returns (bool) { Transaction storage transaction = proposalByIndex[_proposalIndex]; if(transaction.noOfConfirmations < noOfConfirmationsNeeded) revert MultiSig__NotEnoughConfirmations(); @@ -126,9 +139,7 @@ contract MultiSig { if(!success) revert MultiSig__TransferFailed(); } - function fundWallet() public payable returns(uint256){ - return msg.value; - } + function fundWallet() public payable {} diff --git a/Multi Sig Wallet/contracts/MultiSigFactory.sol b/Multi Sig Wallet/contracts/MultiSigFactory.sol index 656e9760..df8d1319 100644 --- a/Multi Sig Wallet/contracts/MultiSigFactory.sol +++ b/Multi Sig Wallet/contracts/MultiSigFactory.sol @@ -3,19 +3,20 @@ pragma solidity ^0.8.27; import "./MultiSig.sol"; +import "./interfaces/IMultiSig.sol"; contract MultiSigFactory { address private feeReceiver; // TODO: implement token fee receivers for creating those smart wallets address[] private allWallets; - // struct Transaction { - // address proposer; - // address to; - // bytes data; - // uint256 noOfConfirmations; - // bool status; - // } + struct Wallets { + address walletAddress; + uint256 timeCreated; + uint256 balance; + } + + mapping(address => Wallets[]) private wallets; event MultiSigCreated(address multisigAddress); @@ -25,8 +26,8 @@ contract MultiSigFactory { function createMultiSig(address[] memory _owners, uint256 _noOfConfirmations) payable external returns (address multisigAddress) { - bytes memory bytecode = getByteCode(_owners, _noOfConfirmations); - bytes32 salt = keccak256(abi.encodePacked(_owners[0], _owners[1])); + bytes memory bytecode = type(MultiSig).creationCode; + bytes32 salt = keccak256(abi.encodePacked(_owners, _noOfConfirmations)); //TODO: put the salt @@ -34,60 +35,68 @@ contract MultiSigFactory { multisigAddress := create2(0, add(bytecode, 32), mload(bytecode), salt) } + MultiSig(multisigAddress).init(_owners, _noOfConfirmations); + allWallets.push(multisigAddress); + Wallets memory wallet = Wallets(multisigAddress, block.timestamp, address(multisigAddress).balance); + wallets[msg.sender].push(wallet); emit MultiSigCreated(multisigAddress); } //// ROUTING OR CONTROLLER SECTION function submitTransaction(address multisigAddress, address _to, uint256 _value, string memory _description) public returns (bool) { - bool submitted = MultiSig(multisigAddress).submitProposal(_to, _value, _description); + IMultiSig(multisigAddress).submitProposal(_to, _value, _description); - return submitted; + return true; } function confirmTransaction(address multisigAddress, uint256 _proposalIndex) public returns (bool) { - bool isConfirmed = MultiSig(multisigAddress).confirmProposal(_proposalIndex); + bool isConfirmed = IMultiSig(multisigAddress).confirmProposal(_proposalIndex); return isConfirmed; } function revokeConfirmedTransaction(address multisigAddress, uint256 _proposalIndex) public returns (bool) { - bool isRevoked = MultiSig(multisigAddress).revokeConfirmedProposal(_proposalIndex); + bool isRevoked = IMultiSig(multisigAddress).revokeConfirmedProposal(_proposalIndex); return isRevoked; } function executeTransaction(address multisigAddress, uint _proposalIndex) public returns (bool) { - bool isExecuted = MultiSig(multisigAddress).executeProposal(_proposalIndex); + bool isExecuted = IMultiSig(multisigAddress).executeProposal(_proposalIndex); return isExecuted; } - function Deposit(address multisigAddress) public returns(uint256) { - return MultiSig(multisigAddress).fundWallet(); + function Deposit(address multisigAddress) public { + IMultiSig(multisigAddress).fundWallet(); } // rOUTER TO GETTER FUNCIONS FROM THE MULTISIGS - function getOwners(address multisigAddress) public view returns (address[] memory) { - address[] memory owners = MultiSig(multisigAddress).getOwners(); + function getOwners(address multisigAddress) public returns (address[] memory) { + address[] memory owners = IMultiSig(multisigAddress).getOwners(); return owners; } - function getDeployer(address multisigAddress) public view returns (address) { - return MultiSig(multisigAddress).getDeployer(); + function getDeployer(address multisigAddress) public returns (address) { + return IMultiSig(multisigAddress).getDeployer(); } - function getAllProposals(address multisigAddress) public view returns (MultiSig.Transaction[] memory) { - MultiSig.Transaction[] memory transactions = MultiSig(multisigAddress).getAllProposals(); + function getAllProposals(address multisigAddress) public returns (IMultiSig.Transaction[] memory) { + IMultiSig.Transaction[] memory transactions = IMultiSig(multisigAddress).getAllProposals(); return transactions; } - function getTimeCreated(address multisigAddress) public view returns (uint256) { - uint256 deployedTime = MultiSig(multisigAddress).getTimeCreated() ; + function getTimeCreated(address multisigAddress) public returns (uint256) { + uint256 deployedTime = IMultiSig(multisigAddress).getTimeCreated(); return deployedTime; } + function getDeployersWallets(address deployer) public view returns (Wallets[] memory) { + return wallets[deployer]; + } + // GETTER FUNCTIONS @@ -97,14 +106,4 @@ contract MultiSigFactory { } - function getByteCode(address[] memory _owners, uint256 _noOfConfirmations) - internal - pure - returns (bytes memory) - { - bytes memory bytecode = type(MultiSig).creationCode; - - return abi.encodePacked(bytecode, abi.encode(_owners, _noOfConfirmations)); - } - } \ No newline at end of file diff --git a/Multi Sig Wallet/contracts/interfaces/IMultiSig.sol b/Multi Sig Wallet/contracts/interfaces/IMultiSig.sol new file mode 100644 index 00000000..104c44fb --- /dev/null +++ b/Multi Sig Wallet/contracts/interfaces/IMultiSig.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +// import "hardhat/console.sol"; + + +interface IMultiSig { + + struct Transaction { + address proposer; + address to; + uint256 value; + // bytes data; TODO: Complex functions + string description; + uint256 noOfConfirmations; + bool status; + } + + + function submitProposal(address _to, uint256 _value, string memory _description) external returns (bool); + + function confirmProposal(uint256 _proposalIndex) external returns (bool); + + function revokeConfirmedProposal(uint256 _proposalIndex) external returns (bool); + + function executeProposal(uint _proposalIndex) external returns (bool); + + function fundWallet() external payable; + + function getAllProposals() external returns (Transaction[] memory); + + function getOwners() external returns (address[] memory); + + function getTimeCreated() external returns (uint256); + + function getDeployer() external returns (address); +} \ No newline at end of file diff --git a/Multi Sig Wallet/scripts/deploy-multisig.js b/Multi Sig Wallet/scripts/deploy-multisig.js new file mode 100644 index 00000000..ea435a88 --- /dev/null +++ b/Multi Sig Wallet/scripts/deploy-multisig.js @@ -0,0 +1,59 @@ +const hre = require("hardhat"); +const { + loadFixture + } = require("@nomicfoundation/hardhat-toolbox/network-helpers"); + +async function main() { + + const FactoryContract = await hre.ethers.getContractFactory("MultiSigFactory"); + const factoryContract = await FactoryContract.deploy("0x650ADf6aA8b4e5764273E7f2001B2A3f792859a5"); + + console.log("Storage contract deployed to:", factoryContract.target); + + // const array = ["0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"] + + // const addresses = "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"; + // const functionName = "transfer"; + + // console.log(factoryContract.target) + + // await factoryContract.createMultiSig(array, 1); + // console.log("here"); + + // const getAddress = await factoryContract.getAllDeployedMultiSigs(); + // console.log("here"); + + // const deployer = await factoryContract.getDeployer(getAddress[0]); + + // console.log(deployer); + + // // console.log(encodedData) + // console.log(getAddress[0], array[1]); + // // const value = await multiSigContract.connect(getAddress[0]).fundWallet({value: ethers.parseEther("3")}); + // // console.log(value); + // const address = await factoryContract.submitTransaction(getAddress[0], array[0], ethers.parseEther("2"), "Pay to Dave"); + + // const getProposals = await factoryContract.getAllProposals(getAddress[0]); + // console.log(getProposals); + // await factoryContract.confirmTransaction(getAddress[0], 0); + // const wallets = await factoryContract.getDeployersWallets(); + // console.log(wallets) + // const proposalExecuted1 = await factoryContract.getAllProposals(getAddress[0]); + // console.log(proposalExecuted1) + // // await factoryContract.executeTransaction(getAddress[0], 0); + // // const proposalExecuted = await factoryContract.getAllProposals(getAddress[0]); + // // console.log(proposalExecuted) + + +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); + + + +// CORE: PoolFactory contract deployed to: 0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382 \ No newline at end of file diff --git a/Multi Sig Wallet/test/Lock.js b/Multi Sig Wallet/test/Lock.js index 46200699..ac7070fc 100644 --- a/Multi Sig Wallet/test/Lock.js +++ b/Multi Sig Wallet/test/Lock.js @@ -20,14 +20,14 @@ describe("Lock", function () { const array = ["0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37", "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"] - const multiSig = await ethers.getContractFactory("MultiSig"); - const multiSigContract = await multiSig.deploy(array, 2); + // const multiSig = await ethers.getContractFactory("MultiSig"); + // const multiSigContract = await multiSig.deploy(array, 2); const multiSigFactory = await ethers.getContractFactory("MultiSigFactory"); const factoryContract = await multiSigFactory.deploy("0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"); - return { factoryContract, multiSigContract }; + return { factoryContract }; } describe("Deployment", function () { @@ -64,6 +64,8 @@ describe("Lock", function () { const addresses = "0xF5c87bFCE1999d3E48f0407E43F0Db10394A4B37"; const functionName = "transfer"; + console.log(factoryContract.target) + const pair = await factoryContract.createMultiSig(array, 1); const pairs = await factoryContract.createMultiSig( array, 1); @@ -82,11 +84,13 @@ describe("Lock", function () { const getProposals = await factoryContract.getAllProposals(getAddress[0]); console.log(getProposals); await factoryContract.confirmTransaction(getAddress[0], 0); + const wallets = await factoryContract.getDeployersWallets(); + console.log(wallets) const proposalExecuted1 = await factoryContract.getAllProposals(getAddress[0]); console.log(proposalExecuted1) - await factoryContract.executeTransaction(getAddress[0], 0); - const proposalExecuted = await factoryContract.getAllProposals(getAddress[0]); - console.log(proposalExecuted) + // await factoryContract.executeTransaction(getAddress[0], 0); + // const proposalExecuted = await factoryContract.getAllProposals(getAddress[0]); + // console.log(proposalExecuted) });